运行级别 level
运行级别
centos6下Linux运行级别0-6的各自含义
0: 关机模式
1:单用户模式 ,用于破解root密码
2:无网络,支持的多用户模式
3:有网络支持的多用户模式(一般叫字符界面,工作中最长使用的模式)
4:保留,未使用
5:有网络支持,支持图形界面,支持的多用户模式(图形界面)
6:重新引导系统,及重启
可以在不同级别下,设置服务是否随系统启动运行。在CentOS7上运行级别的含义已经和之前不同了,已由.target来代替运行级别,我们可以称target为目标态,我们可以通过target定制更符合我们工作运行环境。
# ls /usr/lib/systemd/system/*.target #查看我们的机器上有多少个target
# ll /usr/lib/systemd/system/*.target | grep runlevel
lrwxrwxrwx. 1 root root 15 9月 19 2017 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 9月 19 2017 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 9月 19 2017 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 9月 19 2017 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 9月 19 2017 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 9月 19 2017 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 9月 19 2017 /usr/lib/systemd/system/runlevel6.target -> reboot.target
注: 发现在runlevel2-4 都是调用multi-user.target这个unit。所以在centos7上runlevel2-4是一个意思
# systemctl list-unit-files --type target #查看所有target的状态
# systemctl list-dependencies runlevel3.target #查看3级别Unit 的所有依赖。Unit 之间存在依赖关系:A 依赖于 B,就意味着 Systemd 在启动 A 的时候,同时会去启动 B。也可以理解也3运行级别下都开启哪些服务
在CentOS7上所谓的目标态,其实就是由各种指定的服务和基础target组合而成的。
总结:Centos6和7运行级别的变化
6 7
init systemd
Traditional runlevel | New target name Symbolically linked to...
Runlevel 0 | runlevel0.target → poweroff.target
Runlevel 1 | runlevel1.target → rescue.target
Runlevel 2 | runlevel2.target → multi-user.target
Runlevel 3 | runlevel3.target → multi-user.target
Runlevel 4 | runlevel4.target → multi-user.target
Runlevel 5 | runlevel5.target → graphical.target
Runlevel 6 | runlevel6.target → reboot.target
Init 0 → systemctl poweroff 关机
Init 1 → systemctl isolate rescue.target 单用户
Init 3 → systemctl isolate multi-user.target 字符界面
Init 5 → systemctl isolate graphical.target 图形化
Init 6 → systemctl reboot 重启
运行级别的切换
1、在CentOS6上,我们切换级别使用init,在CentOS7上虽然也能使用,但是调用的不再是原来的程序了。Centos7使用systemctl isolate name.target来切换target。 # isolate [ˈaɪsəleɪt] 分离,隔离
例1:在Centos6下切换到字符界面:
# init 3 #切换到字符界面
# init 5 #切换到图形界面
例2:Centos7切换到字符界面
# systemctl isolate multi-user.target
或:
# systemctl isolate runlevel3.target
Centos7设置默认系统默认启动级别
systemctl set-default name.target来修改我们的目标态。
我们看一下我们的默认目标态究竟为何物。
# ll /etc/systemd/system/default.target #查看默认启动级别
注:它其实就是创建了一个软链接到指定的target上去了
例1:默认系统启动使用3级别字符界面
# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
[root@xuegod63 ~]# ll /etc/systemd/system/default.target #查看链接
lrwxrwxrwx 1 root root 41 5月 23 19:08 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
例2:默认系统启动使用5级别图形界面
# systemctl set-default graphical.target