How to test dependency based sysv boot system in Debian
Petter Reinholdtsen
pere at hungry.com
Sat Sep 9 14:33:34 UTC 2006
[Marc Haber]
> Is insserv compatible with file-rc, or does it mandate using the
> rather clumsy link-based scheme?
As far as I know, it only support the link-based scheme. But it has
debug output that seem to contain the information needed by file-rc,
so I guess it should be possible to implement support for file-rc as
well. Not something I'm going to start on anytime soon, thought.
I just tested this system in a freshly installed sid chroot, and had
to update it to get rid of some loops. These problems will be fixed
after the archive is updated tomorrow.
Apply this patch:
--- /var/tmp/old-init.d/umountfs 2006-09-09 14:12:59.000000000 +0000
+++ /etc/init.d/umountfs 2006-09-09 14:14:38.000000000 +0000
@@ -2,8 +2,8 @@
### BEGIN INIT INFO
# Provides: umountfs
# Required-Start:
-# Required-Stop:
-# Should-Stop: halt reboot
+# Required-Stop: umountroot
+# Should-Stop:
# Default-Start:
# Default-Stop: 0 6
# Short-Description: Turn off swap and unmount all local file systems.
diff -u /var/tmp/old-init.d/umountroot /etc/init.d/umountroot
--- /var/tmp/old-init.d/umountroot 2006-09-09 14:12:59.000000000 +0000
+++ /etc/init.d/umountroot 2006-09-09 14:13:50.000000000 +0000
@@ -1,10 +1,11 @@
#! /bin/sh
### BEGIN INIT INFO
# Provides: umountroot
-# Required-Start: umountfs
-# Required-Stop: umountfs
-# Default-Start: 6
-# Default-Stop:
+# Required-Start:
+# Required-Stop:
+# Should-Stop: halt reboot
+# Default-Start:
+# Default-Stop: 0 6
# Short-Description: Mount the root filesystem read-only.
### END INIT INFO
And remove /usr/share/insserv/overrides/umountfs,
/usr/share/insserv/overrides/halt and
/usr/share/insserv/overrides/reboot to avoid mixing the override
values with the correct headers.
I started with this boot sequence:
/etc/rcS.d:
README S18ifupdown-clean S39ifupdown
S01glibc.sh S20module-init-tools S40networking
S02hostname.sh S20modutils S45mountnfs.sh
S02mountkernfs.sh S22hwclock.sh S46mountnfs-bootclean.sh
S04mountdevsubfs.sh S25libdevmapper1.02 S55bootmisc.sh
S05bootlogd S30checkfs.sh S55urandom
S10checkroot.sh S30procps.sh S99stop-bootlogd-single
S12mtab.sh S35mountall.sh
S18hwclockfirst.sh S36mountall-bootclean.sh
/etc/rc2.d/:
README S11klogd S20openbsd-inetd S99rc.local S99stop-bootlogd
S10sysklogd S20makedev S89cron S99rmnologin
And this is the new boot order after converting:
/etc/rcS.d:
README S04ifupdown-clean S07networking
S01glibc.sh S04module-init-tools S07urandom
S01hostname.sh S04modutils S08mountnfs.sh
S01hwclockfirst.sh S04mtab.sh S09mountnfs-bootclean.sh
S01mountkernfs.sh S05checkfs.sh S10bootmisc.sh
S02mountdevsubfs.sh S05ifupdown S10hwclock.sh
S03bootlogd S05libdevmapper1.02 S10stop-bootlogd-single
S03checkroot.sh S06mountall.sh
S03procps.sh S07mountall-bootclean.sh
/etc/rc2.d/:
README S10openbsd-inetd S11sysklogd S12klogd S14rmnologin
S07makedev S10rc.local S12cron S13stop-bootlogd
As you might see, the new boot order make sense, and there are more
scripts that will run in parallel if CONCURRENCY=shell is used.
There are still a few bugs, example example hwclockfirst.sh should
probably run just after mountdevsubfs.sh, and procps.sh should run
just after mountkernfs.sh, but it also work with the current sequence.
I hang out on the IRC channel #pkg-sysvinit for those interested in
discussing these things. :)
Friendly,
--
Petter Reinholdtsen
More information about the initscripts-ng-devel
mailing list