运行级别
在操作系统上运行维护之前,或者修改系统运行级别之前,需检查各种不同的运行级别。运行级别是一个软件配置,只允许一组选定的进程存在。
识别系统运行级别
本节描述如何识别系统正运行在什么样的运行级别,和如何查看之前运行级别的历史。系统可运行于如下表所列运行级别:
Run level Description
0-1 保留,为操作系统将来所用
2 包括运行于多用户环境下的所有终端进程(process and daemons),此为默认的运行级别
3-9 可根据用户偏爱[preferences]定义
a,b,c,h 非真正的运行级别,init 命令不能请求整个系统进入这些运行级别。更多信息参考3、/etc/inittab 文件
S,s,M,m 维护模式,系统从别的运行级别进入维护模式时,只有系统控制台可作为终端使用
识别当前的运行级别
命令行下,输入如下命令:
# cat /etc/.init.state
2
#
系统显示一位数字,就是系统当前的运行级别。
显示前面的运行级别历史
可使用 fwtmp 命令显示前面运行级别的历史。
1. 作为 root 用户登录。
2. 键入如下命令,系统显示如下信息:
# /usr/lib/acct/fwtmp run-level 2 1 0 0062 0123 1132072406
Tue Nov 15 10:33:26 CST 2005
run-level 2 1 0 0062 0123 1132075614
Tue Nov 15 11:26:54 CST 2005
run-level 2 1 0 0062 0123 1132092491
Tue Nov 15 16:08:11 CST 2005
run-level 2 1 0 0062 0123 1132094756
Tue Nov 15 16:45:56 CST 2005
改变系统运行级别
系统首次启动时,进入 /etc/inittab 文件中 initdefault 条目定义的默认运行级别。系统以该运行级别运行,直到收到变更运行级别的信号。可执行 lsitab 命令查找系统默认的运行级别:
# lsitab init
init: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 脚本将运行指定目录下找到的启动脚本,并在运行级别改变时执行。脚本首先运行停止应用程序脚本,然后运行启动应用程序脚本。
阅读(3320) | 评论(0) | 转发(0) |