一、简介
Linux 系统启动级别分为以下七种:
- rc0: 停机(不能使用)
- rc1: 单用户模式
- rc2: 多用户模式,但是没有NFS
- rc3: 完全多用户模式
- rc4: 没有使用,系统预留
- rc5: 图形界面模式
- rc6: 重启模式(不能使用)
二、示例
此处以debian系为例,在/etc/rc0.d至/etc/rc6.d七个目录中分别存放了不同的启动脚本,如/etc/rc1.d:
lrwxrwxrwx 1 root root 20 Feb 9 10:33 K01alsa-utils -> ../init.d/alsa-utils
lrwxrwxrwx 1 root root 13 Feb 9 10:33 K01atd -> ../init.d/atd
lrwxrwxrwx 1 root root 22 Feb 9 10:33 K02avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx 1 root root 14 Feb 9 10:33 K02gdm3 -> ../init.d/gdm3
lrwxrwxrwx 1 root root 17 Feb 9 10:33 K04rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 20 Feb 9 10:33 K06nfs-common -> ../init.d/nfs-common
lrwxrwxrwx 1 root root 17 Feb 9 10:33 K06rpcbind -> ../init.d/rpcbind
lrwxrwxrwx 1 root root 14 Feb 9 10:33 S01motd -> ../init.d/motd
lrwxrwxrwx 1 root root 18 Feb 9 10:33 S05bootlogs -> ../init.d/bootlogs
lrwxrwxrwx 1 root root 16 Feb 9 10:33 S06single -> ../init.d/single
从命名来看,这些脚本分为两类:KXX,SXX;
其中K代表Kill,是停止的意思,S代表Start,是启动的意思;
紧跟在后面的数字是优先级,数字越大,优先级越低;
这些脚本都是从/etc/init.d目录下软链接过来的,配置文件通常在/etc/init/目录下,个别文件在/etc/下有单独的配置文件目录。
三、如何选择rc级别?
查看/etc/inittab(如果没有,查看相似功能文件)内容,里面记录着Linux的启动级别:
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#id:3:initdefault:
如上所示,启动级别为3,启动时将会执行rc3下的脚本。
四、为什么使用符号链接而不是将脚本放在这些目录中?
- 我们必须在 rcx .d 的每个运行级别目录中放置相同的脚本
- 即使我们愿意执行上一步,我们也无法定义脚本在启动和关闭期间执行的顺序。