如下是一个不被推荐使用的命令update-rc.d,但是其中介绍了linux的service启动顺序和原理.
关于runlevel N和/etc/rcN.d的关系.
------------------------------------------
只要进入rc3.d 更改gdm前面的s为k,这样,当再init 3的时候,就和fedora效果一样,进入text command界面.
如果要修改默认runlevel,更改/etc/event.d/rc-default.d,在最后一行加入你想要的runLEVEL,比如:telinit 3
------------------------------------------
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/rcrun‐
level.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 main‐
tainer scripts and, accordingly, has only the very limited functional‐
ity 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 pre‐
vent 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 ser‐
vice 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. Obvi‐
ously, 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 argu‐
ments 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 num‐
bers. The set is terminated by a solitary full stop character. When
explicit specification, rather than defaults, is used there will usu‐
ally 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/rcrun‐
level.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-shut‐
down 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).
Debian Project 14 November 2005 UPDATE-RC.D(8)
关于runlevel N和/etc/rcN.d的关系.
------------------------------------------
只要进入rc3.d 更改gdm前面的s为k,这样,当再init 3的时候,就和fedora效果一样,进入text command界面.
如果要修改默认runlevel,更改/etc/event.d/rc-default.d,在最后一行加入你想要的runLEVEL,比如:telinit 3
------------------------------------------
###################################################
UPDATE-RC.D(8) sysv-rc UPDATE-RC.D(8)
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/rcrun‐
level.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 main‐
tainer scripts and, accordingly, has only the very limited functional‐
ity 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 pre‐
vent 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 ser‐
vice 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. Obvi‐
ously, 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 argu‐
ments 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 num‐
bers. The set is terminated by a solitary full stop character. When
explicit specification, rather than defaults, is used there will usu‐
ally 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/rcrun‐
level.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-shut‐
down 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).
Debian Project 14 November 2005 UPDATE-RC.D(8)
No comments:
Post a Comment