Provided by: sysv-rc_2.86.ds1-59ubuntu13_all bug

NAME

       update-rc.d - install and remove System-V style init script links

SYNOPSIS

       update-rc.d [-n] [-f] name remove

       update-rc.d [-n] name defaults [NN | SS KK]

       update-rc.d   [-n]   name   start|stop  NN  runlevel  [runlevel]...   .
              start|stop NN runlevel [runlevel]...  . ...

DESCRIPTION

       update-rc.d  updates   the   System   V   style   init   script   links
       /etc/rcrunlevel.d/NNname  whose  target is the script /etc/init.d/name.
       These links are run  by  init  when  it  changes  runlevels;  they  are
       generally  used  to  start  and  stop  system services such as daemons.
       runlevel  is  one  of  the  runlevels  supported   by   init,   namely,
       0123456789S,  and  NN  is the two-digit sequence number that determines
       where in the sequence init will run the scripts.

       This manpage documents only the usage  and  behaviour  of  update-rc.d.
       For  a discussion of the System V style init script arrangements please
       see init(8) and the Debian Policy Manual.

       Please  note  that  this  program  was  designed  for  use  in  package
       maintainer   scripts  and,  accordingly,  has  only  the  very  limited
       functionality required by such scripts.  System administrators are  not
       encouraged  to  use  update-rc.d to manage runlevels.  They should edit
       the links directly or use runlevel editors such as sysv-rc-conf and bum
       instead.

INSTALLING INIT SCRIPT LINKS

       When  run with either the defaults, start, or stop options, update-rc.d
       makes links  /etc/rcrunlevel.d/[SK]NNname  that  point  to  the  script
       /etc/init.d/name.

       If  any  files  /etc/rcrunlevel.d/[SK]??name already exist then update-
       rc.d does nothing.  The program was written this way so  that  it  will
       never  change an existing configuration, which may have been customized
       by the system administrator.  The program will only  install  links  if
       none  are  present, i.e., if it appears that the service has never been
       installed before.

       A common system administration error is to delete the  links  with  the
       thought  that  this  will  "disable"  the service, i.e., that this will
       prevent the service from being started.  However,  if  all  links  have
       been  deleted then the next time the package is upgraded, the package’s
       postinst script will run update-rc.d  again  and  this  will  reinstall
       links  at  their factory default locations.  The correct way to disable
       services is to configure the service as stopped  in  all  runlevels  in
       which it is started by default.  In the System V init system this means
       renaming the service’s symbolic links from S to K.

       If defaults is used then update-rc.d  will  make  links  to  start  the
       service  in  runlevels  2345  and  to stop the service in runlevels 016
       unless an LSB-style header is present in  the  init.d  script  and  the
       /etc/update-rc.d-lsbparse file exist.  If such header exist, the levels
       listed in the Default-Start and Default-Stop fields in that header  are
       used  instead.   By default all the links will have sequence number 20,
       but 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.

       As a rule of thumb, the sequence number of the stop link should be  100
       minus the sequence number of the start link; this causes services to be
       stopped in the opposite order  to  that  in  which  they  are  started.
       Obviously,  therefore,  the  default stop sequence number should be 80.
       Defaulting to 20, as update-rc.d does, is an old  bug  that  cannot  be
       fixed because of the risk of breaking things.

       Instead  of  defaults  one  can  give  one  or  more  sets of arguments
       specifying particular runlevels in which to start or stop the  service.
       Each  of  these sets of arguments starts with the keyword start or stop
       and a sequence number NN, followed by one  or  more  runlevel  numbers.
       The set is terminated by a solitary full stop character.  When explicit
       specification, rather than defaults, is used there will usually be  one
       start  and  one  stop set.  If different sequence codes are required in
       different runlevels then several start sets or several stop sets may be
       specified.   If this is done and the same runlevel is named in multiple
       sets then only the last one counts.  Therefore it is  not  possible  to
       create  multiple start or multiple stop links for a service in a single
       runlevel directory.

       The script /etc/init.d/name must exist before  update-rc.d  is  run  to
       create the links.

REMOVING SCRIPTS

       When  invoked  with the remove option, update-rc.d removes any links in
       the /etc/rcrunlevel.d directories to the script /etc/init.d/name.   The
       script  must have been deleted already.  If the script is still present
       then update-rc.d aborts with an error message.

       update-rc.d is usually called from a package’s post-removal script when
       that   script   is   given  the  purge  argument.   Any  files  in  the
       /etc/rcrunlevel.d directories that are not symbolic links to the script
       /etc/init.d/name will be left untouched.

OPTIONS

       -n     Don’t do anything, just show what we would do.

       -f     Force removal of symlinks even if /etc/init.d/name still exists.

EXAMPLES

       Insert links using the defaults:
          update-rc.d foobar defaults
       Equivalent command using explicit argument sets:
          update-rc.d foobar start 20 2 3 4 5 . stop 20 0 1 6 .
       More typical command using explicit argument sets:
          update-rc.d foobar start 30 2 3 4 5 . stop 70 0 1 6 .
       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
       Remove all links  for  a  script  (assuming  foobar  has  been  deleted
       already):
          update-rc.d foobar remove
       Example of disabling a service:
          update-rc.d -f foobar remove
          update-rc.d foobar stop 20 2 3 4 5 .
       Example  of  a  command  for  installing  a  system initialization-and-
       shutdown script:
          update-rc.d foobar start 45 S . stop 31 0 6 .
       Example of a command for disabling a system initialization-and-shutdown
       script:
          update-rc.d -f foobar remove
          update-rc.d foobar stop 45 S .

BUGS

       See http://bugs.debian.org/sysv-rc.

FILES

       /etc/init.d/
              The directory containing the actual init scripts.

       /etc/rc?.d/
              The directories containing the links used by init and managed by
              update-rc.d.

       /etc/init.d/skeleton
              Model for use by writers of init.d scripts.

SEE ALSO

       Debian Policy Manual,
       /etc/init.d/skeleton,
       sysv-rc-conf(8), bum(8), init(8).