CentOS 7上的系统管理之:Systemd和systemctl(7)

悬挂(suspend)指的是将系统的运行状态保存在内存中同时伴随内存模块异常,并关闭机器中的大部分设备。当用户回到计算机面前时,可以从内存中恢复。由于是从内存中恢复并且避免了再一次引导系统,因此它的恢复速度比休眠(hibernation)要快。

如果在悬挂期间电源出现故障,那么系统的状态就会丢失了。

~]# systemctl suspend

休眠(hibernate)和悬挂的作用相似,都是保存系统的状态避免了再次重新引导系统,区别在于休眠是将系统的状态保存在磁盘中。因此其恢复系统的速度较慢。

~]# systemctl hibernate

还有一个休眠并悬挂系统。

~]# systemctl hybrid-sleep

感觉作为运维,休眠和悬挂应该是不怎么会在服务器上所使用的,因此了解下常见的关机和重启操作即可。

创建和修改unit文件

创建和修改unit文件是理解systemd工作的重点和难点,对于服务的开发人员来说,应该是必备的技能。对于我目前的运维阶段来说,只要达到会看即可,因此这里先暂时留白,感兴趣的可以直接看开头参考资料中的红帽文档。

Unit文件存在于文章开头处提到的三个目录,其中“/etc/systemd/system/”目录是留给管理员自定义的,因此我们自定义的unit文件建议放该目录下。

Unit文件的文件名:

unit_name.type_extension

unit名和类型都是可替换的,合在一起叫做完整(full)的unit文件名。

例如sshd有两个常见的unit文件:sshd.service和sshd.socket。

如果我们想对一个unit做选项补充的话,可以新增一个“.d”目录并在其下创建补充的配置文件。例如当我们想为sshd.service增加自定义的配置选项时,可以创建sshd.service.d/custom.conf配置文件。详见。

另外,还可以存在“sshd.service.wants/”和“sshd.service.requires/”目录,这些目录下都是字符链接文件,链接到其他的unit文件,以此来决定sshd.service的依赖关系。字符链接会自动产生,也可人为创建。详见。

了解unit文件的结构

Unit文件由典型的三部分构成:

[Unit]:包含通用的选项,不受unit类型所影响。这部分主要提供了unit的简单描述信息,指定其行为,定义其依赖关系。

[unit type]:这部分的选项,是和unit类型相关的。即如果是.service类的unit,就有其相关的特定选项。

[Install]:在通过systemctl enable或者disable的时候,所涉及到的选项。

[Unit]和[Install]的选项的完整参考手册,可见systemd.unit(5);[unit type]的选项,则需要根据unit的类型来确定。可通过以下命令查找对应的man手册。

~]# man -k systemd ... systemd.scope (5) - Scope unit configuration systemd.service (5) - Service unit configuration systemd.slice (5) - Slice unit configuration systemd.snapshot (5) - Snapshot unit configuration systemd.socket (5) - Socket unit configuration ... systemd.swap (5) - Swap unit configuration systemd.target (5) - Target unit configuration ...

当编辑或者新建了unit的文件,需要使用该命令重载systemd,使其知晓。

~]# systemctl daemon-reload

总结

最后对于unit文件的具体描述比较少,在初级运维的时候可能就够用了。但是在慢慢深入后,对于系统的排错或者需要开发服务的时候,就需要来了解这块的内容了,到时候若有遇到再来补充。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11611.html