Systemd how to
http://lxiaogao.lofter.com/post/1cc6a101_62292d3
理解SYSTEM UNITS
Units让systemd知道如何管理对象。这里有一些对被管理的系统资源基本地标准化描述。一些功能units能简单的实现:
- 基于套接字的激活:套接字和服务的联系很好的突破了daemon它自己的处理顺序。这有很多的优点,如:延迟了服务的启动,直到关联的套接字先被访问。这同样允许系统在启动阶段建立所有套接字,使所有相关的服务并行启动。
- 基于总线的激活:Units也能被D-Bus提供的总线接口激活。一个unit可以被与其相关的总线激活。
- 基于路径的激活:unit可以被某个可用的或正在使用的文件系统目录激活。
- 隐含依赖映射:systemd自己可以为多数unit建立依赖树。也可以自己手动添加,但对于重要的服务要非常的慎重。
- 实例和模板:模版unit文件能用来建立多个相似的unit实例。这用于有少许改变或同级的unit,它们提供相同的功能。
- 简单、安全:可能通过一些指令让unit实现相当好的安全功能。例如:可以指定没有访问权限或只读访问文件系统的一部分,限制内核能力,并且可以分配私有/tmp和网络访问。
- drop-ins and snippets:Unit能被简单的扩展,只要提供覆盖的部分就可以。
Systemd Unit文件在哪里?
unit文件可以在很多不同的位置,它们有不同的属性和含意。当软件安装之后,unit默认的存放位置在/lib/systemd/system目录。
unit文件被存放在这里,可以在一个会话中被以deman的形式开始和停止。
目录 | 描述 |
---|---|
/usr/lib/systemd/system/ |
RPM包安装的服务单元。 |
/run/systemd/system/ |
在运行时创建的systemd unit文件。 该目录的优先级高于安装的服务单元。 |
/etc/systemd/system/ |
该目录的Sysstemd unit由systemctl enable 创建,同时该unit文件用于扩展服务 。这个目录的优先级高于运行时刻的单元文件。 |
/etc/systemd/system目录用于系统管理员自定义创建单元文件。
单元文件名的格式如下:
unit_name.type_extension
unit_name:unit文件名。
type_extension:表示unit类型。
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files