运行级别就是Linux操作系统当前正在运行的功能级别。在早期系统设置中,共设有七个运行级别,编号从0到6。系统可以引导到任何给定的运行级别。
每个运行级别指定不同的系统配置,并允许访问不同的进程组合。默认情况下,Linux会引导至运行级别3或运行级别5。
启动时一次只执行一个运行级别,它不会一个接一个地执行。
在SysVinit系统(centos6版本)中,系统的默认运行级别在系统的/etc/inittab文件中指定。
在systemd系统(centos7版本)中,系统不读取此文件,它使用以下文件/etc/systemd/system/default.target来获取默认的运行级别信息。
本文就如何查看系统当前当前运行级别,如何切换不同运行级别,如何重新配置运行级别作一简单介绍。
当我们开机启动系统后,系统通过引导程序,正常运行后,就按配置文件设定的运行级别完成启动工作。
我们可以使用以下5种方法检查系统当前运行级别。
runlevel打印系统的上一个和当前运行级别:
命令: runlevel
输出结果:N 5
N:“N”表示自系统启动后运行级别尚未更改
5:“5”表示系统的当前运行级别
下图是设置默认运行级别为3,更改为运行级别为5后,用该命令查看的情况:
3:表示系统启动时默认运行级别
5:表示系统的当前运行级别
who打印有关当前登录用户的信息。它将使用“-r”选项打印运行级别信息。
who -r
这是设置默认运行级别为3,更改为运行级别为5后,用该命令查看的情况:
systemctl用于控制systemd系统和服务管理器。它可以作为sysvinit系统的直接替代品,systemd是内核启动并保持PID 1的第一个进程。systemd使用.service文件而不是bash脚本(SysVinit使用),systemd将所有守护进程排序到他们自己的Linux cgroup中,可以通过浏览/cgroup/systemd文件来查看系统层次结构:
systemctl get-default
如果系统是centos6版本的,系统的/etc/inittab文件中指定运行级别,一般是这样:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
id:5:initdefault:
但centos7版本中,systemd不读取文件(文件存在,仅有注释)。
在CentOS 7下运行vim /etc/inittab结果如下:
注释内容:
# multi-user.target类似于runlevel 3;
# graphical.target类似于runlevel5
获得当前默认运行级别的方式为
systemctl get-default
设置默认运行级别的方式
systemctl set-default TARGET.target
设置运行级别命令格式:
systemctl [command] [unit.target]
设置默认的运行级别为 xxx
则命令为:systemctl set-default xxx
下面列出Centos6 -7两个版本中系统的级别:
init级别 |
systemctl target |
0 |
shutdown.target |
1 |
emergency.target |
2 |
rescure.target |
3 |
multi-user.target |
4 |
无 |
5 |
graphical.target |
6 |
无 |
备注:以上命令均需要超级管理员权限,如果需要临时切换 直接init+ 需要切换到的数字。
系统的默认运行级别在systemd 系统的/etc/systemd/system/default.target文件中指定,它不适用于SysVinit系统(centos6):
cat /etc/systemd/system/default.target
从上面的几种方法可知,通过runlevel命令或who –r命令,可以查看系统的默认级别及当前运行级别。
而查看系统的所有运行级别信息,需要用下面的命令。
ls -l /lib/systemd/system/runlevel*target
运行级别的切换,分两种情况。一是临时切换,另外是永久修改。
我们可以用init x进行运行级别切换。
如在正常运行时,通过 init 0 切换到0运行级别,也就相当于关机
通过 init 6 切换到6运行级别,也就相当于重启
如果当前运行在字符界面(3)级别,通过 init 5 切换到5运行级别,也就相当于切换到图形界面
如果当前运行在图形界面(5)级别,通过 init 3 切换到3运行级别,也就相当于切换到字符界面
当我们root密码忘记时,可以在开机启动界面中,选择运行1级别,切换到单用户模式,可以修改root密码。(具体方法,可参考文章《机房实训小案例(三)》)。
永久修改就是把3运行级别或5运行级别设为开机默认运行级别。这要利用命令systemctl进行默认运行级别设置。
具体设置如后。
开机默认级别设置:
在centos6中,直接在文件/etc/inittab中设置:
id:5:initdefault: #默认图形界面
id:3:initdefault: #默认字符界面
在centos6中,直接用命令:
1. systemctl set-default multi-user.target
这条命令是设置成运行等级3,就是开机直接进入多用户命令行,没有图形界面
2.systemctl set-default graphical.target
这条命令是设置成运行等级5,就是开机直接进入图形界面
设置完成后,我们使用 systemctl get-default 命令查看一下对不对就可以。
不同的运行级有不同的用处,也应该根据自己的不同情形来设置。可利用init命令关机或重启。可利用runlevel查看运行级别。