[Splashy-devel] Bug#485307: Bug#485307: splashy starts too late during startup/shutdown

Kel Modderman kel at otaku42.de
Sun Sep 21 14:38:41 UTC 2008


On Sunday 21 September 2008 15:38:55 Petter Reinholdtsen wrote:
> [Petter Reinholdtsen]
> > To get that effect, the X-start-before header can be used to
> > document that it should not just start after mountkernfs, but it
> > should start before some script too.  Perhaps mountdevsubfs is a
> > good choice?
> 
> I tested this, and found it not to be working.  Depending on $all as
> either start or stop dependency affect ordering for both start and
> stop.
> 
> I've stated before, and can only repeat it.  Please only use $all if
> there is no other way to get the wanted behaviour, as it do not behave
> the way most people expect. :) It is better and more predicatble to
> depend on other scripts.
> 
> Anyway, the issue with $all affecting both start and stop sequences is
> noted, a test case is written, and we will discuss with upstream how
> it should work.

$all is _only_ intended to be used with (Required|Should)-Start, to quote
the LSB spec at [0]:

$all - facility supported by insserv to start a script after all the other
       scripts, at the end of the boot sequence.

It describes that $all is only useful in directives that start a script,
not to stop it. We must be careful to not think of splashy as "starting" in
a runlevel that is calling all initscripts with the 'stop' argument.
Possibly the spec should be more clear about that.

Having said that, it is indeed a bug that insserv modifies the start runlevel
sort/sequence order when $all is found in (Required|Should)-Stop fields of the
LSB info, and it should definitely not do that.

To fix splashy and have it inserted in dependency based boot as expected simply
remove the $all keyword from Required-Stop. On my system it will start splashy
in runlevel S just after mountkernfs and before udev, and stop first in
sequence of runlevels 0 and 6.

insserv: enable service ../init.d/splashy -> /etc/init.d/../rc0.d/K01splashy
insserv: enable service ../init.d/splashy -> /etc/init.d/../rc6.d/K01splashy
insserv: enable service ../init.d/splashy -> /etc/init.d/../rcS.d/S04splashy

Thanks, Kel.

[0] http://wiki.debian.org/LSBInitScripts
---
--- a/scripts/init.d/splashy
+++ b/scripts/init.d/splashy
@@ -2,7 +2,7 @@
 ### BEGIN INIT INFO
 # Provides:          splashy
 # Required-Start:    mountkernfs
-# Required-Stop:     $all
+# Required-Stop:
 # Default-Start:     S
 # Default-Stop:      0 6
 # Short-Description: A script to calculate the progress percentage for init scripts
---





More information about the Splashy-devel mailing list