运行级别 是 init 和整个系统的一种状态,它定义了哪些系统服务正在运行。运行级别由数字标识。一些系统管理员使用运行级别来定义哪些子系统正在工作,例如,X 是否正在运行,网络是否可操作等等。其他人则始终运行所有子系统,或者单独启动和停止它们,而不更改运行级别,因为运行级别对于控制他们的系统来说太粗糙了。你需要自己决定,但遵循你的 Linux 发行版的方式可能是最容易的。
下表定义了大多数 Linux 发行版如何定义不同的运行级别。但是,运行级别 2 到 5 可以修改以适合你自己的喜好。
表 9-1. 运行级别编号
0 | 停止系统。 |
1 | 单用户模式(用于特殊管理)。 |
2 | 本地多用户模式,带有网络但没有网络服务(如 NFS) |
3 | 完全多用户模式,带有网络 |
4 | 未使用 |
5 | 完全多用户模式,带有网络和 X Windows (GUI) |
6 | 重启。 |
在特定运行时启动的服务由各种rcN.d目录的内容决定。大多数发行版将这些目录放在/etc/init.d/rcN.d或/etc/rcN.d。(将 N 替换为运行级别编号。)
在每个运行级别中,你都会找到一系列指向位于/etc/init.d中的启动脚本的符号链接。这些链接的名称都以 K 或 S 开头,后跟一个数字。如果链接的名称以 S 开头,则表示当你进入该运行级别时,该服务将被启动。如果链接的名称以 K 开头,则该服务将被终止(如果正在运行)。
K 或 S 后面的数字表示脚本运行的顺序。这是一个/etc/init.d/rc3.d可能看起来的示例。
# ls -l /etc/init.d/rc3.d lrwxrwxrwx 1 root root 10 2004-11-29 22:09 K12nfsboot -> ../nfsboot lrwxrwxrwx 1 root root 6 2005-03-29 13:42 K15xdm -> ../xdm lrwxrwxrwx 1 root root 9 2004-11-29 22:08 S01pcmcia -> ../pcmcia lrwxrwxrwx 1 root root 9 2004-11-29 22:06 S01random -> ../random lrwxrwxrwx 1 root root 11 2005-03-01 11:56 S02firewall -> ../firewall lrwxrwxrwx 1 root root 10 2004-11-29 22:34 S05network -> ../network lrwxrwxrwx 1 root root 9 2004-11-29 22:07 S06syslog -> ../syslog lrwxrwxrwx 1 root root 10 2004-11-29 22:09 S08portmap -> ../portmap lrwxrwxrwx 1 root root 9 2004-11-29 22:07 S08resmgr -> ../resmgr lrwxrwxrwx 1 root root 6 2004-11-29 22:09 S10nfs -> ../nfs lrwxrwxrwx 1 root root 12 2004-11-29 22:40 S12alsasound -> ../alsasound lrwxrwxrwx 1 root root 8 2004-11-29 22:09 S12fbset -> ../fbset lrwxrwxrwx 1 root root 7 2004-11-29 22:10 S12sshd -> ../sshd lrwxrwxrwx 1 root root 8 2005-02-01 09:24 S12xntpd -> ../xntpd lrwxrwxrwx 1 root root 7 2004-12-02 20:34 S13cups -> ../cups lrwxrwxrwx 1 root root 6 2004-11-29 22:09 S13kbd -> ../kbd lrwxrwxrwx 1 root root 13 2004-11-29 22:10 S13powersaved -> ../powersaved lrwxrwxrwx 1 root root 9 2004-11-29 22:09 S14hwscan -> ../hwscan lrwxrwxrwx 1 root root 7 2004-11-29 22:10 S14nscd -> ../nscd lrwxrwxrwx 1 root root 10 2004-11-29 22:10 S14postfix -> ../postfix lrwxrwxrwx 1 root root 6 2005-02-04 13:27 S14smb -> ../smb lrwxrwxrwx 1 root root 7 2004-11-29 22:10 S15cron -> ../cron lrwxrwxrwx 1 root root 8 2004-12-22 20:35 S15smbfs -> ../smbfs |
运行级别如何启动在/etc/inittab中配置,通过如下行:
l2:2:wait:/etc/init.d/rc 2 |
第四个字段中的命令完成了设置运行级别的所有繁重工作。它启动尚未运行的服务,并停止不应再在新运行级别中运行的服务。命令的具体内容以及运行级别的配置方式取决于 Linux 发行版。
当 init 启动时,它会在/etc/inittab中查找指定默认运行级别的行
id:2:initdefault: |
当系统运行时,telinit 命令可以更改运行级别。当运行级别更改时,init 从/etc/inittab.