运行级别
在操作系统上运行维护之前,或者修改系统运行级别之前,需检查各种不同的运行级别。运行级别是一个软件配置,只允许一组选定的进程存在。
识别系统运行级别
本节描述如何识别系统正运行在什么样的运行级别,和如何查看之前运行级别的历史。系统可运行于如下表所列运行级别:
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.state
2
#
系统显示一位数字,就是系统当前的运行级别。
显示前面的运行级别历史
可使用 fwtmp 命令显示前面运行级别的历史。
1. 作为 root 用户登录。
2. 键入如下命令,系统显示如下信息:
# /usr/lib/acct/fwtmp </var/adm/wtmp |grep run-level
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 脚本将运行指定目录下找到的启动脚本,并在运行级别改变时执行。脚本首先运行停止应用程序脚本,然后运行启动应用程序脚本。

最新文章

  1. java使用websocket,并且获取HttpSession,源码分析
  2. java 读取文件最佳实践
  3. 为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)[转]
  4. java多线程中的生产者与消费者之等待唤醒机制@Version2.0
  5. MATLAB 实用函数
  6. 学习记录 java泛型资料
  7. EBP与ESP寄存器的使用
  8. Android权限安全(6)四大组件自定义权限示例
  9. MIME
  10. .net Web.Config配置文件 转
  11. C#在Json反序列化中处理键的特殊字符
  12. python实例编写(1)--浏览器操作,元素操作
  13. js中的栈与堆的讲解/基本数据类型与引用类型的讲解
  14. Mybatis_2.基于XML的增删改查
  15. linux rpm安装 failed depenencie(失败的依赖关系)错误原因
  16. java 解耦
  17. python——虚拟环境之virtualenv(windows10,64位)
  18. 服务请求比较慢SYN flooding
  19. rabbitmq增加vhost
  20. 设置PDF文件默认缩放比例

热门文章

  1. MySQL中SQL语句的分类
  2. PHP字符
  3. VC++对话框中添加状态栏的方法
  4. 5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)
  5. BZOJ 3343教主的魔法
  6. NOI 2015 T1 等式
  7. chrome extension/plugin path
  8. Oracle目录结构及创建新数据库
  9. Docker容器中运行ASP.NET Core
  10. 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解