Package: sysv-rc-conf
Version: 0.99-1
Severity: normal

First some background

Early in our recent private conversation about BUM, the Saltydog wrote:
> I think that, in any case, a Kxx symlink will always mean *not* to
> run a service (or stop a service from running), while introducing
> new symbols (such as a .Sxx symlink) could be confusing in the
> future.  Don't you agree?

I wrote (what I now want to retract):
No, and here is why.  In rc0.d/ and rc6.d/, not only K but also S
> symlinks are run with the "stop" argument.  I can imagine that,
> paralleling this, someone might get it into his head to think
> that K symlinks in rcS.d/ should be run with the "start" argument.

I always thought that that was a weak argument. And now The Saltydog
and I have thought of a much stronger argument on the other side.
Suppose there is a Startup-and-shutdown script symlinked into
S, 0 and 6.  The administrator disables it.  In order to disable
it in 0 and 6 the symlink has to be deleted.  If the symlink is
deleted in S too then the script is not symlinked into any
runlevel, and the next time the script's package is upgraded the
update-rc.d call in its postinst will install the default symlinks.
In order to prevent this it is expedient to keep a K symlink in
rcS.d/ for the disabled startup-and-shutdown script.

This means that if someone "gets it into his head" to think that
K symlinks in rcS.d/ should be run with the "start" argument, we
should convince that person otherwise.

Joe Oppegaard: Assuming that the correct way to disable startup-
and-shutdown scripts, as distinct from service scripts, is to
(1) remove symlinks from 0 and 6 entirely, and (2) to rename
symlink in S from S to K: there a bug in sysv-rc-conf.  The
following show the situation before and after I disabled the
startup-and-shutdown script foo in the runlevels [S06].

[EMAIL PROTECTED]:/etc# ll rc?.d/*foo
lrwxrwxrwx  1 root root 13 Jul 16 08:12 rc0.d/K70foo -> ../init.d/foo*
lrwxrwxrwx  1 root root 13 Jul 16 08:12 rc6.d/K70foo -> ../init.d/foo*
lrwxrwxrwx  1 root root 13 Jul 16 08:12 rcS.d/S40foo -> ../init.d/foo*
[EMAIL PROTECTED]:/etc# ll rc?.d/*foo
lrwxrwxrwx  1 root root 13 Jul 16 08:12 rc0.d/K30foo -> ../init.d/foo*
lrwxrwxrwx  1 root root 13 Jul 16 08:12 rc6.d/K30foo -> ../init.d/foo*
lrwxrwxrwx  1 root root 13 Jul 16 08:12 rcS.d/K30foo -> ../init.d/foo*

The end result should have been no symlinks in [06] and a K symlink
in S.

After re-enabling foo, this is the result.

[EMAIL PROTECTED]:/etc# ll rc?.d/*foo
lrwxrwxrwx  1 root root 13 Jul 16 08:17 rc0.d/S70foo -> ../init.d/foo*
lrwxrwxrwx  1 root root 13 Jul 16 08:17 rc6.d/S70foo -> ../init.d/foo*
lrwxrwxrwx  1 root root 13 Jul 16 08:17 rcS.d/S40foo -> ../init.d/foo*

The symlinks which were originally K in [06] are now S.

--
Thomas


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to