insserv / dependency boot

Petter Reinholdtsen pere at hungry.com
Thu Oct 8 09:46:00 UTC 2009


[Chris Gianniotis]
> Hello Petter,

Hi.  Putting initscripts-ng-devel at lists.alioth.debian.org back on Cc.

>> Looking at the rc2.d sequence, I see that this is a bug in the wdm
>> package.  I've reported a bug against it, see #550060 for a fix for
>> the problem.  To fix it locally, edit the file /etc/init.d/wdm and add
>> the Should-Start line to the header, and run 'update-rc.d wdm
>> defaults' to reorder the boot based on these new dependencies.
> 
> Implemented this and, indeed, WDM now starts considerably later and,
> in fact, after hald has completed. That's the good news ; the bad news
> is that the behaviour is still as before - all the imput modules of X
> are still unloaded and it's frozen and impossible to type into
> anything. The fix remains the same : quit X, log in and run WDM
> manually. I don't use network-manager and so tried removing it from
> the Should-Start: line, but the result was the same either way.

I must admit, I do not really know the requirement of wdm.  I hoped it
had similar requirement as gdm, but might be wrong. :)

>> I'm not quite sure what could be the reason for this.  I forgot to ask
>> you to include the output from 'ls /etc/rc6.d', to see the shutdown
>> sequence too.  I have two suspects for this issue.  Either your system
>> was not converted using the insserv/sysv-rc package scripts as
>> reported in #549260, or you are bitten by the hwclock issue reported
>> in #543375.
> 
> I executed a solution mentioned in #549260 (dpkg-reconfigure -plow
> sysv-rc) just to be certain but it has made no visible improvement,
> so it must be the hwclock issue... I compile kernels but am unsure
> about what .config changes are required (from #543375). The contents
> of /etc/rc6.d are attached below. At least, it complains about
> 'superblock future time' but doesn't stop and interrupt the boot
> process.

Actually, your issue is the same as with #549260.  The "start"
symlinks in rc6.d/ should have been converted to stop symlinks, and
this is not done on your machine, leading to incorrect shutdown order.
Are you using testing or unstable?  If not, you should use
'dpkg-reconfigure insserv' instead of 'dpkg-reconfigure sysv-rc'.

The migration process is not done on your system, and thus the
shutdown is broken.  If you want to change the "start" symlinks in
rc0.d and rc6.d manually, you can run this command.

  for f in /etc/rc[06].d/S*; do
      mv $f $(dirname $f)/K01$(basename $f |cut -c4-)
  done
  insserv

This is similar to the command executed during the migration process
done by the insserv/sysv-rc package scripts.

How did you convert to dependency based boot sequencing, and where did
you read how to do it?

>> The script /usr/share/insserv/check-initd-order can be used to check
>> that the scripts are in dependency order, but most of the remaining
>> issues are simply missing or incorrect dependencies in the individual
>> packages and it is impossible to know about this without knowing the
>> requirements of the individual scripts.
> 
> check-initd-order reports no errors.

Good.

>> I did notice some strange things about your rc2.d/ ordering.
>> stop-bootlogd is supposed to start last, not first.  The dependency on
>> $all should enforce this.  Some of the scripts starting very early in
>> rc2.d/ should probably start after sysklogd, but this is not very
>> serious, as the only effect is a few lost syslog messages during boot.
> 
> Perhaps this was fixed by the dpkg-reconfigure sysv-rc above ; all
> results (the new regime ?) are attached below

Perhaps.

>> The rcS.d/ ordering indicate that your machine is not using the latest
>> version of initscripts.  is that correct?  With the latest version,
>> bootlogd should start before pcmciautils and hostname, and just after
>> mountdevsubfs.sh.  If you are using testing, I recommend upgrading to
>> the latest version of that package.
> 
> Sorry, but, as far as I know, I *am* using the most recent version of
> initscripts : 2.87dsf-6.

Good.

> ##CONCURRENCY=none
> CONCURRENCY=shell

You might want to test CONCURRENCY=makefile when the shutdown ordering
is fixed.

Which version of sysv-rc and insserv do you have installed?

Happy hacking,
-- 
Petter Reinholdtsen



More information about the initscripts-ng-devel mailing list