• 操作Ubuntu的启动服务项目rc.d

    [Ubuntu]
    post by Holmesian / 2010-10-7 22:46 Thursday

    今天很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. 1、设置指定启动顺序、指定运行级别的启动项:
    2. update-rc.d <service> start <order> <runlevels>
    3. 2、设置在指定运行级中,按指定顺序停止:
    4. update-rc.d <service> stop <order> <runlevels>
    5. 3、从所有的运行级别中删除指定的启动项:
    6. update-rc.d -f <script-name> remove

    在Ubuntu的/etc目录下有rc0.d rc1.d rc2.d rc3.d……rc6.d和init.d几个文件夹起着控制着Ubuntu服务启动的作用:

     
    1. drwxr-xr-x   2 root    root      4.0K 2010-10-07 11:23 rc0.d
    2. drwxr-xr-x   2 root    root      4.0K 2010-10-07 11:23 rc1.d
    3. drwxr-xr-x   2 root    root      4.0K 2010-10-07 11:22 rc2.d
    4. drwxr-xr-x   2 root    root      4.0K 2010-10-07 11:23 rc3.d
    5. drwxr-xr-x   2 root    root      4.0K 2010-10-07 11:23 rc4.d
    6. drwxr-xr-x   2 root    root      4.0K 2010-10-07 11:22 rc5.d
    7. drwxr-xr-x   2 root    root      4.0K 2010-10-07 11:23 rc6.d
    8. drwxr-xr-x   2 root    root      4.0K 2010-10-06 22:39 init.d/

    init.d文件夹下放着服务的脚本


     
    1. lrwxrwxrwx   1 root root   21 2010-07-15 21:37 acpid -> /lib/init/upstart-job
    2. -rwxr-xr-x   1 root root  652 2010-04-23 20:13 acpi-support
    3. lrwxrwxrwx   1 root root   21 2010-07-16 04:56 alsa-mixer-save -> /lib/init/upstart-job
    4. lrwxrwxrwx   1 root root   21 2010-07-16 04:56 anacron -> /lib/init/upstart-job
    5. -rwxr-xr-x   1 root root 6.1K 2010-04-14 03:27 apache2
    6. -rwxr-xr-x   1 root root 3.5K 2010-03-31 03:58 apparmor
    7. lrwxrwxrwx   1 root root   21 2010-07-16 04:56 apport -> /lib/init/upstart-job
    8. lrwxrwxrwx   1 root root   21 2010-07-16 04:56 atd -> /lib/init/upstart-job
    9. lrwxrwxrwx   1 root root   21 2010-10-04 08:57 avahi-daemon -> /lib/init/upstart-job
    10. -rwxr-xr-x   1 root root 1.8K 2010-02-17 22:00 binfmt-support
    11. ……

    rc(x).d文件夹下放着相应运行在x级下的服务的脚本链接,即rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d、rc6.d一共六个不同的目录里面分别放着对应的六个运行级别下系统需要执行的脚本。(以下为rc2.d目录下的内容,都是相应服务的脚本链接S表示启动数字表示启动顺序。)


     
    1. lrwxrwxrwx   1 root root   24 2010-10-07 11:22 S01binfmt-support -> ../init.d/binfmt-support
    2. lrwxrwxrwx   1 root root   20 2010-10-07 11:22 S01fancontrol -> ../init.d/fancontrol
    3. lrwxrwxrwx   1 root root   27 2010-10-07 11:22 S01speech-dispatcher -> ../init.d/speech-dispatcher
    4. lrwxrwxrwx   1 root root   22 2010-10-07 11:22 S05acpi-support -> ../init.d/acpi-support
    5. lrwxrwxrwx   1 root root   14 2010-10-07 11:22 S05cups -> ../init.d/cups
    6. lrwxrwxrwx   1 root root   20 2010-10-07 11:22 S05pulseaudio -> ../init.d/pulseaudio
    7. lrwxrwxrwx   1 root root   15 2010-10-07 11:22 S05rsync -> ../init.d/rsync
    8. lrwxrwxrwx   1 root root   17 2010-10-07 11:22 S05winbind -> ../init.d/winbind
    9. lrwxrwxrwx   1 root root   19 2010-10-07 11:22 S06bluetooth -> ../init.d/bluetooth
    10. lrwxrwxrwx   1 root root   19 2010-10-07 11:22 S06dns-clean -> ../init.d/dns-clean
    11. lrwxrwxrwx   1 root root   20 2010-10-07 11:22 S06kerneloops -> ../init.d/kerneloops
    12. lrwxrwxrwx   1 root root   18 2010-10-07 11:22 S06pppd-dns -> ../init.d/pppd-dns
    13. lrwxrwxrwx   1 root root   15 2010-10-07 11:22 S06saned -> ../init.d/saned
    14. lrwxrwxrwx   1 root root   21 2010-10-07 11:22 S07grub-common -> ../init.d/grub-common
    15. lrwxrwxrwx   1 root root   18 2010-10-07 11:22 S07ondemand -> ../init.d/ondemand

    关于系统运行的六个级别可以简单地如下解释(关于对应的六个级别可以参照Debain的运行级别 ):


     
    1. 0 为停机,机器关闭。
    2. 1 为单用户模式,就像Win9x下的安全模式类似。
    3. 2 为多用户模式,但是没有NFS支持。
    4. 3 为完整的多用户模式,是标准的运行级。
    5. 4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
    6. 5 就是X11,进到X Window系统了。
    7. 6 为重启,运行init 6机器就会重启。 

    要看当前系统运行在什么级别下可以用runlevel命令:


     
    1. holmesian@holmesian-laptop:/etc/init.d$ runlevel
    2. 2

    这表示当前系统运行下级别2下。





    说两句:

    xuexile
    2010-10-09 14:32
    学习了

    发表评论: