运行级别 在操作系统上运行维护之前,或者修改系统运行级别之前,需检查各种不同的运行级别。运行级别是一个软件配置,只允许一组选定的进程存在。 识别系统运行级别 本节描述如何识别系统正运行在什么样的运行级别,和如何查看之前运行级别的历史。系统可运行于如下表所列运行级别: Run level Description 0-1 保留,为操作系统将来所用2 包括运行于多用户环境下的所有终端进程(process and daemons),此为默认的运行级别 3-9 可根据用户偏爱[preferences]定义a,b,c,h 非真正的运行级别,init 命令不能请求整个系统进入这些运行级别。更多信息参考3、/etc/inittab 文件 <nyf://78353c53> S,s,M,m 维护模式,系统从别的运行级别进入维护模式时,只有系统控制台可作为终端使用 识别当前的运行级别 命令行下,输入如下命令:# cat /etc/.init.state2#系统显示一位数字,就是系统当前的运行级别。 显示前面的运行级别历史 可使用 fwtmp 命令显示前面运行级别的历史。1. 作为 root 用户登录。2. 键入如下命令,系统显示如下信息:# /usr/lib/acct/fwtmp </var/adm/wtmp |grep run-levelrun-level 2 1 0 0062 0123 1132072406Tue Nov 15 10:33:26 CST 2005run-level 2 1 0 0062 0123 1132075614Tue Nov 15 11:26:54 CST 2005run-level 2 1 0 0062 0123 1132092491Tue Nov 15 16:08:11 CST 2005run-level 2 1 0 0062 0123 1132094756Tue Nov 15 16:45:56 CST 2005 改变系统运行级别 系统首次启动时,进入 /etc/inittab 文件中 initdefault 条目定义的默认运行级别。系统以该运行级别运行,直到收到变更运行级别的信号。可执行 lsitab 命令查找系统默认的运行级别:# lsitab initinit:2:initdefault:# 要改变运行,按下列步骤:1. 检查 /etc/inittab 文件,确认要改变的运行级别支持正在运行的进程。getty 进程特别重要,因为其控制着系统控制台和其他登录的终端线访问。确定 getty 进程在所有运行级别下可用。2. 使用 wall 命令通知所有的用户,打算修改运行级别,请求用户注销。3. 使用 telinit 命令,以想切换到的运行级别作为参数,例如:# telinit M telinit 命令 telinit 命令通过一个单字符的参数控制 init 进程的操作,发信号给 init 进程以执行适当的操作。通常,telinit 命令置系统于特定的运行级别。telinit 命令作为指令传递给 init 进程的参数如下: 0-9 告知 init 进程,置系统于 0-9 中的一个运行级别S,s,M,m 告知 init 进程,进入维护模式a,b,c 告知 init 进程,只检查 /etc/inittab 文件中 run level 字段有a, b, c 的那些记录Q,q 告知 init 进程,重新检查整个 /etc/inittab 文件N 发送一个信号,停止正在 respawned 的进程 例如,要进入维护模式,键入如下命令:# telinit M注意:要进入维护模式,也可使用 shutdown -m 命令。 执行运行级别脚本 运行级别脚本可使用户在改变运行级别时,启动和停止选定的应用程序。以 K 为开头的脚本是停止脚本,以 S 为开头的脚本是启动脚本。 这些脚本位于其所属特定运行级别的子目录下,各子目录的格式为rcn.d,n 代表运行级别,如下所示: /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d /etc/rc.d/rc7.d /etc/rc.d/rc8.d /etc/rc.d/rc9.d /etc/rc.d/rc 脚本将运行指定目录下找到的启动脚本,并在运行级别改变时执行。脚本首先运行停止应用程序脚本,然后运行启动应用程序脚本。