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

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

-w754

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

1
2
3
[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/ 目录中。再看看此目录中关于运行级别的文件:

1
2
3
4
5
6
7
8
9
10
[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 这个软连接即可,比如我想更改为“多用户,无图形”模式,只需执行以下命令:

1
2
3
[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 ~]#

1
2
3
[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 ~]#