操作Ubuntu的启动服务项目rc.d
今天很SB地用apt-get install了chkconfig工具来修改Ubuntu的启动服务项,其实在Ubuntu下有一个update-
rc.d工具可以比较完美地操作启动服务脚本。也可以使用update-rc.d-insserv代替update-
rc.d,语法和作用效果貌似是一样的,暂时还不知道这两个命令有什么区别……只知道今天用update-rc.d-insserv替换update-
rc.d执行删除启动服务操作时可以避免在update-rc.d下出现的一些错误提示,有哪位DX知道还麻烦告知一下。
1、设置指定启动顺序、指定运行级别的启动项:
update-rc.d <service> start <order> <runlevels>
2、设置在指定运行级中,按指定顺序停止:
update-rc.d <service> stop <order> <runlevels>
3、从所有的运行级别中删除指定的启动项:
update-rc.d -f <script-name> remove
在Ubuntu的/etc目录下有rc0.d rc1.d rc2.d rc3.d……rc6.d和init.d几个文件夹起着控制着Ubuntu服务启动的作用:
drwxr-xr-x 2 root root 4.0K 2010-10-07 11:23 rc0.d
drwxr-xr-x 2 root root 4.0K 2010-10-07 11:23 rc1.d
drwxr-xr-x 2 root root 4.0K 2010-10-07 11:22 rc2.d
drwxr-xr-x 2 root root 4.0K 2010-10-07 11:23 rc3.d
drwxr-xr-x 2 root root 4.0K 2010-10-07 11:23 rc4.d
drwxr-xr-x 2 root root 4.0K 2010-10-07 11:22 rc5.d
drwxr-xr-x 2 root root 4.0K 2010-10-07 11:23 rc6.d
drwxr-xr-x 2 root root 4.0K 2010-10-06 22:39 init.d/
init.d文件夹下放着服务的脚本
lrwxrwxrwx 1 root root 21 2010-07-15 21:37 acpid -> /lib/init/upstart-job
-rwxr-xr-x 1 root root 652 2010-04-23 20:13 acpi-support
lrwxrwxrwx 1 root root 21 2010-07-16 04:56 alsa-mixer-save -> /lib/init/upstart-job
lrwxrwxrwx 1 root root 21 2010-07-16 04:56 anacron -> /lib/init/upstart-job
-rwxr-xr-x 1 root root 6.1K 2010-04-14 03:27 apache2
-rwxr-xr-x 1 root root 3.5K 2010-03-31 03:58 apparmor
lrwxrwxrwx 1 root root 21 2010-07-16 04:56 apport -> /lib/init/upstart-job
lrwxrwxrwx 1 root root 21 2010-07-16 04:56 atd -> /lib/init/upstart-job
lrwxrwxrwx 1 root root 21 2010-10-04 08:57 avahi-daemon -> /lib/init/upstart-job
-rwxr-xr-x 1 root root 1.8K 2010-02-17 22:00 binfmt-support
……
rc(x).d文件夹下放着相应运行在x级下的服务的脚本链接,即rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d、rc6.d一共六个不同的目录里面分别放着对应的六个运行级别下系统需要执行的脚本。(以下为rc2.d目录下的内容,都是相应服务的脚本链接S表示启动数字表示启动顺序。)
lrwxrwxrwx 1 root root 24 2010-10-07 11:22 S01binfmt-support -> ../init.d/binfmt-support
lrwxrwxrwx 1 root root 20 2010-10-07 11:22 S01fancontrol -> ../init.d/fancontrol
lrwxrwxrwx 1 root root 27 2010-10-07 11:22 S01speech-dispatcher -> ../init.d/speech-dispatcher
lrwxrwxrwx 1 root root 22 2010-10-07 11:22 S05acpi-support -> ../init.d/acpi-support
lrwxrwxrwx 1 root root 14 2010-10-07 11:22 S05cups -> ../init.d/cups
lrwxrwxrwx 1 root root 20 2010-10-07 11:22 S05pulseaudio -> ../init.d/pulseaudio
lrwxrwxrwx 1 root root 15 2010-10-07 11:22 S05rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 17 2010-10-07 11:22 S05winbind -> ../init.d/winbind
lrwxrwxrwx 1 root root 19 2010-10-07 11:22 S06bluetooth -> ../init.d/bluetooth
lrwxrwxrwx 1 root root 19 2010-10-07 11:22 S06dns-clean -> ../init.d/dns-clean
lrwxrwxrwx 1 root root 20 2010-10-07 11:22 S06kerneloops -> ../init.d/kerneloops
lrwxrwxrwx 1 root root 18 2010-10-07 11:22 S06pppd-dns -> ../init.d/pppd-dns
lrwxrwxrwx 1 root root 15 2010-10-07 11:22 S06saned -> ../init.d/saned
lrwxrwxrwx 1 root root 21 2010-10-07 11:22 S07grub-common -> ../init.d/grub-common
lrwxrwxrwx 1 root root 18 2010-10-07 11:22 S07ondemand -> ../init.d/ondemand
关于系统运行的六个级别可以简单地如下解释(关于对应的六个级别可以参照Debain的运行级别 ):
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
6 为重启,运行init 6机器就会重启。
要看当前系统运行在什么级别下可以用runlevel命令:
holmesian@holmesian-laptop:/etc/init.d$ runlevel
N 2
这表示当前系统运行下级别2下。