Provided by: sysv-rc_2.86.ds1-14.1ubuntu45_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|multiuser [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, multiuser, 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.  If
       multiuser is used then update-rc.d will make links to start the service
       in  runlevels  2345  and  top  stop the service in only runlevel 1.  By
       default all the links will have sequence number 20,  but  this  can  be
       overridden  by  supplying  one  NN or two SS and KK arguments to either
       defaults or multiuser; a single argument overrides the sequence  number
       for both start and stop links whereas a pair of arguments overrides the
       sequence numbers for start and stop links, respectively.

       As a rule of thumb, the sequence number of the  stop  link  should  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  or  multiuser  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 .
       Insert links for a service that should  be  running  during  multi-user
       mode, but that does not need to be explicitly stopped on shutdown:
          update-rc.d foobar multiuser
       Equivalent command using explicit argument sets:
          update-rc.d foobar start 20 2 3 4 5 . stop 20 1 .
       More typical command using explicit argument sets:
          update-rc.d foobar start 30 2 3 4 5 . stop 70 0 1 6 .
       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 . start 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 .

NOTES

       The multiuser option is an  Ubuntu-extension  intended  to  reduce  the
       amount  of time spent stopping services during shutdown and reboot that
       have no particular requirement to be explicitly stopped.

       Unless your init script does something in the stop command that is more
       than  just  sending the TERM or KILL signal to the running process, you
       should strongly consider using multiuser instead of defaults.

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).