如何控制Linux中的运行级别
一、查看系统的运行级别
不同的运行级别代表了系统不同的运行状态所能运行的服务或程序会有所区别,明确当前所处的运行级别将有助于管理员对一些应用故障的排除。若未能确知当前所处的运行级别,可以使用runlevel命令进行查询,输出结果中分别包含切换前的级别和目前的级别。
【例1】:查看系统的运行级别状态,若之前未切换过运行级别,第一列将显示“N”。
二、切换系统运行级别
当用户需要将系统转换为其他的运行级别时,可以使用init程序命令进行,只要使用与运行级别相对应的数字(0-6)作为命令参数即可。若要设置系统开机后默认进入的运行级别,则编辑“/etc/inittab”配置文件。
【例2】:关闭当前系统。
【例3】:重启当前系统。
三、设置系统服务在不同运行级别中的状态
在Linux系统中包含了大量的服务程序,这些服务程序在切换运行级别时由rc脚本根据预设的状态进行启动或终止。当然,对于某个系统服务在特定的运行级别中是否运行,这完全可以由管理员自行决定。
需要调整各种系统服务在不同运行级别中的自启动状态时,可以使用chkconfig或者ntsysv命令进行操作。
1、使用ntsysv配置工具
ntsysv工具可以在字符模式中运行,为用户提供了交互式操作的界面,专门用于集中配置各种系统服务的启动状态。单独执行“ntsysv”命令时仅用于管理当前运行级别中的服务,若使用“--level”选项,则可以对指定运行级别中的服务进行管理。例如,执行“ntsysv --level 35”命令后,将打开一个交互式的程序界面,可以同时设置在运行级别3、5中各服务的启动状态。
操作时使用上下箭头键选择不同的服务项,按空格键切换启动状态,“[*]”表示自动启动,“[ ]”表示不要自动启动。按F1键可以获取关于某项服务的详细说明,以便决定是否应加载。
当需要同时设置大量服务的启动状态时,选择使用ntsysv配置工具要更加合适。
2、使用chkconfig配置工具
chkconfig配置工具与ntsysv的功能类似,但是并不提供交互式的操作界面,当需要设置个别服务在不同运行级别的启动状态时,选择使用chkconfig命令要更有效率。
将chkconfig命令与“--list”选项配合使用,可以查看特定服务在不同运行级别中的启动状态,若未指定服务名称,则将显示所有服务的启动状态。
【例4】:查看network服务在各运行级别中的启动状态。
【例5】:查看系统中所有服务在各运行级别中的启动状态。
将chkconfig命令与“--level”选项配合使用,可以设置指定服务在指定运行级别中的启动状态。较常用的命令格式如下:
chkconfig --level 运行级别列表 服务名称 on|off
【例6】:将network服务在运行级别2、4中的启动状态设置为off
【例7】:将network服务在运行级别2-5中的启动状态均设置为on
当缺少“--level”选项时,有时候也可以设置指定服务在不同运行级别的状态,但是这种方式的设置结果会受到该服务脚本文件中状态参数的影响,存在不确定性,因此不建议使用。
【例8】:使用不带“--level”选项的chkconfig命令将vncserver服务的启动状态设置为关闭。
转载于:https://blog.51cto.com/343308530/1259764