使用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

从上面可以看到,我们仍然有七个不同的运行级别,从系统关闭电源到系统重新启动。

运行级别系统描述说明
0poweroff.target关机
1rescue.target救援模式
2multi-user.target多用户模式
3multi-user.target多用户模式
4multi-user.target多用户模式
5graphical.target图形界面
6reboot.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