Package: sysv-rc
Version: 2.86.ds1-1

I had to read the init.d/rc script to make sure that
Knn* are _not_ called in reversed sort order. In facts,
the docs don't say it. Giving a single NN argument should
be deprecated. More misunderstandings below...

Related bugs: 268713, 288098
The following also applies to version 2.86.ds1-2, AFAICS.


Suggestions:

1) advertise update-rc.d
Add a paragraph in /etc/init.d/README saying something like

  Use the update-rc.d command to create symbolic links
  in the /etc/rc?.d as appropriate. See that man page
  for more details.

2) encourage setting the stop number correctly
In the man page I would replace

  this can be overridden by supplying one or two NN arguments

with

  this should be overridden if there are dependencies. For
  example if daemon B depends on A, then A must be started
  before B and B must be killed before A. You accomplish
  this by supplying two NN arguments. In general, core daemons
  should start early and be killed late, whilst applications
  can start late and be killed early. See EXAMPLES below.

  The first NN argument supplies the start sequence number and
  the second NN argument supplies the kill sequence number.
  Kill scripts are called first, passing a stop argument. Then
  start scripts are called passing a start argument. In either
  case, calls happen in ascending sequence number order.

  Supplying a single NN argument will use the same number for
  both start and kill links. This is supported for backward
  compatibility but is discouraged, as it may lead to inconsistent
  settings. As a rule of thumb, if you increase the start sequence
  number you should also decrease the stop sequence number, and
  vice-versa.

And then put more examples, e.g.

  Insert links at default runlevels when B requires A
     update-rc.d script_for_A defaults 80 20
     update-rc.d script_for_B defaults 90 10

  Insert a link to a service that (presumably) will not be
  needed by any other daemon
     update-rc.d top_level_app defaults 98 02

  Insert links for a script that requires services that
  start/stop at sequence number 20
     update-rc.d script_depends_on_svc20 defaults 21 19


Giving a single argument should be deprecated:

Let two independent daemons A and B configured in that way,
say A starts/stops at sequence number 20 and B at sequence
number 40. Then consider a service C that depends on A and
provides services necessary for B. (E.g. B can be configured
to do authentication using C.) Then C may start at 30, after
A but before B. There is no valid sequence number to stop C.
In facts, the stopping order should be kill-B, kill-C, kill-A,
which is not possible because A is killed before B.

Of course, such deadlocks may happen also letting the default 20,
but then at least it is clear that the problem hasn't been put. I
see no circumstance in which supplying `40' to the configuration
of B yields a benefit. What am I missing?


More misunderstandings:

- I have rc0.d/K21fam and rc3.d/S21fam. They used to be both at 20
  (see bug 280617.) What issue has been solved with that move?

- If anyone is registered there, please edit
  http://wiki.linuxquestions.org/wiki/Update-rc.d
  it says so:

    Yes, you can use the arguments start and stop, followed by NN
    (where NN are the desired runlevels) to specify which runlevels
    the script will start and stop in.




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

Reply via email to