Linux 中的运行级别
先决条件:Linux 启动
运行级别是 init 和整个系统的状态,它定义了正在运行的系统服务。运行级别由数字标识。一些系统管理员使用运行级别来定义哪些子系统在工作,例如,X 是否在运行,网络是否在运行,等等。
- 每当 LINUX 系统启动时,首先启动init进程,它实际上负责运行其他启动脚本,主要涉及硬件初始化、启动网络、启动图形界面。
- 现在, init首先找到系统的默认运行级别,以便它可以运行与默认运行级别对应的启动脚本。
- 运行级别可以简单地认为是您的系统进入的状态,就像系统处于单用户模式时,它的运行级别为 1 ,而如果系统处于多用户模式,则运行级别为 5 。
- 换句话说,运行级别可以定义为一个预设的个位数整数,用于定义基于 LINUX 或 UNIX 的操作系统的操作状态。每个运行级别指定不同的系统配置并允许访问不同的进程组合。
这里需要注意的重要一点是,根据操作系统的不同,运行级别存在差异。标准的LINUX 内核支持这七种不同的运行级别:
- 0 – 系统停止,即系统可以在没有活动的情况下安全关闭。
- 1 – 单用户模式。
- 2 – 没有 NFS(网络文件系统)的多用户模式。
- 3 – 命令行界面下而非图形用户界面下的多用户模式。
- 4 – 用户可定义。
- 5 – GUI(图形用户界面)下的多用户模式,这是大多数基于 LINUX 的系统的标准运行级别。
- 6 – Reboot,用于重新启动系统。
默认情况下,大多数基于 LINUX 的系统启动到运行级别 3 或运行级别 5。
除了标准的运行级别,用户还可以根据需要修改预设的运行级别甚至创建新的运行级别。运行级别 2 和 4 用于用户定义的运行级别,运行级别 0 和 6 用于停止和重新启动系统。
显然,每个运行级别的启动脚本执行不同的任务会有所不同。这些对应于每个运行级别的启动脚本可以在rc 子目录下的特殊文件中找到。
在/etc/rc.d目录中,将有一组名为rc.0、rc.1、rc.2、rc.3、rc.4、rc.5和rc.6 的文件,或一组目录命名为rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d和rc6.d。
例如,运行级别 1 将在文件 /etc/rc.d/rc.1 或目录 /etc/rc.d/rc1.d 中的任何文件中拥有其启动脚本。
更改运行级别
init是负责改变运行级别的程序,可以使用telinit命令调用它。
例如,要将运行级别从 3 更改为运行级别 5,这实际上将允许在多用户模式下启动 GUI, telinit命令可以用作:
/*using telinit to change
runlevel from 3 to 5*/
telinit 5
注意:运行级别的更改是超级用户的任务,而不是普通用户的任务,这就是为什么必须以超级用户身份登录才能成功执行上述 telinit 命令,或者您可以使用sudo命令作为:
// using sudo to execute telinit
sudo telinit 5
系统的默认运行级别在/etc/initab文件中指定,该文件将具有条目id:5:initdefault如果默认运行级别设置为 5 或将具有条目id:3:initdefault如果默认运行级别设置为 3 .
需要更改运行级别
- 可以有一种情况,当你可以在登录的情况下,你不记得密码或因为损坏的/ etc / passwd文件中(有所有的用户名和密码)觉得麻烦,在这种情况下,就可以解决问题通过启动到单用户模式,即运行级别 1。
- 您可以通过使用 telinit 0将运行级别更改为 0 来轻松停止系统。