CentOS 7 如何改变默认运行级别

无论怎样,RHEL 7 系统选择 systemd 初始化进程服务已经是一个既定事实,因此也没有 了“运行级别”这个概念,Linux 系统在启动时要进行大量的初始化工作,比如挂载文件系统 和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd 用目 标(target)代替了 System V init 中运行级别的概念。

而默认启动级别(target),则是由 /etc/systemd/system/default.target 文件控制,可以先看看默认情况下这个文件的信息:

[root@localhost ~]# ls -l /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 37 5月   2 15:16 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target
[root@localhost ~]#

可以看到,default.target 其实只是一个软连接,具体文件内容保存在 /lib/systemd/system/ 目录中。再看看此目录中关于运行级别的文件:

[root@localhost ~]# ls -l /lib/systemd/system/|grep run|grep -v wants
lrwxrwxrwx. 1 root root   15 5月   2 15:12 runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root   13 5月   2 15:12 runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root   17 5月   2 15:12 runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 5月   2 15:12 runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root   17 5月   2 15:12 runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root   16 5月   2 15:12 runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root   13 5月   2 15:12 runlevel6.target -> reboot.target
-rw-r--r--. 1 root root  761 8月   5 2017 systemd-update-utmp-runlevel.service
[root@localhost ~]# 

可以看到,系统默认已经将运行级别的对应关系列出来了。

所以,如果要改变 CentOS7 的默认运行级别,只需要更改 /etc/systemd/system/default.target 这个软连接即可,比如我想更改为“多用户,无图形”模式,只需执行以下命令:

[root@localhost ~]# rm -f /etc/systemd/system/default.target
[root@localhost ~]# ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
[root@localhost ~]#

[root@localhost ~]# rm -f /etc/systemd/system/default.target
[root@localhost ~]# ln -s /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
[root@localhost ~]#