使用systemd控制运行级别
时间:2019-04-29 03:17:31 来源:igfitidea点击:
什么是systemd?
systemd替代了较旧的传统System V init
系统。systemd代表系统守护程序。systemd旨在更好地处理依赖关系,并具有在系统启动时并行处理更多工作的能力。systemd支持系统快照和系统状态还原,跟踪存储在所谓的cgroup
(与传统的PID
方法)不同的进程。systemd现在默认提供许多流行的Linux发行版,例如Fedora,Mandriva,Mageia,Arch Linux,CentOS 7,RHEL 7.0(Red Hat Enterprise Linux)和Oracle Linux 7.0。systemd将运行级别称为目标。
在以下示例中,我们将向您展示如何显示和使用不同的运行级别(目标)。用于演示以下命令的系统是RHEL 7.0 Standard Desktop配置。
控制运行级别
显示系统的当前运行级别
[root@rhel07a ~]# systemctl get-default graphical.target
运行级别graphical.target
等效于传统的运行级别5(通过图形显示和网络进行的完全用户访问)。
您可以通过执行以下命令来显示,在systemd中新使用的运行级别/目标:
ls -al /lib/systemd/system/runlevel*
[root@rhel07a /]# ls -al /lib/systemd/system/runlevel* lrwxrwxrwx. 1 root root 15 Apr 25 10:31 /lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Apr 25 10:31 /lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Apr 25 10:31 /lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Apr 25 10:31 /lib/systemd/system/runlevel6.target -> reboot.target
从上面可以看到,我们仍然有七个不同的运行级别,从系统关闭电源到系统重新启动。
运行级别 | 系统描述 | 说明 |
---|---|---|
0 | poweroff.target | 关机 |
1 | rescue.target | 救援模式 |
2 | multi-user.target | 多用户模式 |
3 | multi-user.target | 多用户模式 |
4 | multi-user.target | 多用户模式 |
5 | graphical.target | 图形界面 |
6 | reboot.target | 重启 |
传统上,默认运行级别包含在/etc/inittab
文件中,并可以使用以下命令显示:cat /etc/inittab | grep initdefault
但是,现在如果您尝试使用systemd在系统上显示/etc/inittab
文件,您将看到一条类似于以下内容的消息:
[root@rhel07a /]# cat /etc/inittab # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # Ctrl-Alt-Delete is handled by /etc/systemd/system/ctrl-alt-del.target # # systemd uses 'targets' instead of runlevels. By default, there are two main targets: # # multi-user.target: analogous to runlevel 3 # graphical.target: analogous to runlevel 5 # # To set a default target, run: # # ln -sf /lib/systemd/system/<target name>.target /etc/systemd/system/default.target
设置默认运行级别的新方法
在下面的示例中,我们将把运行级别从graphical.target
更改为multi-user.target
。(运行级别5到运行级别3)。
为此,我们只需执行以下命令:
rm /etc/systemd/system/default.target ln -s /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target systemctl get-default 或者 ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target systemctl get-default