使用 systemctl list-unit-files 会将系统上所有的服务通通列出来~而不像 list-units 仅以 unit 分类作大致的说明。 至于 STATE 状态就是前两个小节谈到的开机是否会载入的那个状态项目。主要有 enabled / disabled / mask / static 等等。
假设我不想要知道这么多的 unit 项目,我只想要知道 service 这种类别的 daemon 而已,而且不论是否已经启动,通通要列出来! 那该如何是好?
17.2.3 通过 systemctl 管理不同的操作环境 (target unit)
可否列出跟操作界面比较有关的 target 项目呢?
在CentOS 7.1的默认情况下,就有26个target unit。跟操作界面相关性比较高的 target 主要有下面几个:
graphical.target:就是文字加上图形界面,这个项目已经包含了下面的 multi-user.target项目!
multi-user.target:纯文本模式!
rescue.target:在无法使用 root 登陆的情况下,systemd 在开机时会多加一个额外的暂时系统,与你原本的系统无关。这时你可以取得 root 的权限来维护你的系统。 但是这是额外系统,因此可能需要动到 chroot 的方式来取得你原有的系统。
emergency.target:紧急处理系统的错误,还是需要使用 root 登陆的情况,在无法使用rescue.target 时,可以尝试使用这种模式!
shutdown.target:就是关机的流程。
getty.target:可以设置你需要几个 tty 之类的,如果想要降低 tty 的项目,可以修改这个东西的配置文件!
正常的模式是 multi-user.target 以及 graphical.target 两个,救援方面的模式主要是rescue.target 以及更严重的 emergency.target。 如果要修改可提供登陆的 tty 数量,则修改getty.target 项目。基本上,我们最常使用的当然就是 multi-user 以及 graphical。
改变 graphical.target 以及 multi-user.target 是通过 isolate 来处理的。在正常的切换情况下,使用上述 isolate 的方式即可。不过为了方便起见, systemd 也提供了数个简单的指令给我们切换操作模式之用,大致上如下所示:
关机、重新开机、救援与紧急模式这没啥问题,那么什么是暂停与休眠模式呢?
suspend:暂停模式会将系统的状态数据保存到内存中,然后关闭掉大部分的系统硬件,当然,并没有实际关机 当。使用者按下唤醒机器的按钮,系统数据会重内存中回复,然后重新驱动被大部分关闭的硬件,就开始正常运行!唤醒的速度较快。
hibernate:休眠模式则是将系统状态保存到硬盘当中,保存完毕后,将计算机关机。当使用者尝试唤醒系统时,系统会开始正常运行, 然后将保存在硬盘中的系统状态恢复回来。因为数据是由硬盘读出,因此唤醒的性能与你的硬盘速度有关。