1、systemd配置文件夹
systemd配置文件存在于以下三个文件夹中:
/etc/systemd/system #存放系统启动的默认级别及启动的unit的软连接,优先级最高。 /run/systemd/system #系统执行过程中产生的服务脚本,优先级次之。 /usr/lib/systemd/system #存放系统上所有的启动文件。优先级最低
2、unit分类
unit的定义文件可以根据其后缀名称识别其定义的类型,可以使用systemctl -t help 查看。
.servicre #定义了系统服务的启动 .target #定义了系统启动的级别标签,systemd 没有运行级别的概念,创建标签只是为了兼容老版本。 .socket #定义了进程通信用到的套接字,套接字与进程是分离的 .device #定义了系统启动时内核识别的文件,systemd提供了设备的管理功能,/dev 下的设备由/etc/udev/下的配置文件与.device共同定制 .mount #定义了系统的文件系统的挂载点 .snapshop #系统快照 .swap #用于标识swap设备 .automount#文件系统的自动挂载点 .path #用于定义文件系统中的一个文件或目录使用。常用于文件系统发生变化时,延迟激活服务。
3、service文件组成:
(1)service文件三部分
[Unit]
...
[service]
...
[install]
...
(2)Unit单元
[Unit] :不属于第二个标签的定义都放在这里,或存放不属于unit类型的定义,描述信息,依赖的unit
Description:描述信息
After:表明需要依赖的服务,作用决定启动顺序
Before:表明被依赖的服务
Requles:依赖到的其他unit ,强依赖,即依赖的unit启动失败。该unit不启动。
Wants:依赖到的其他unit,弱依赖,即依赖的unit 启动失败。该unit继续启动
Conflicts:定义冲突关系
(3)service单元
[Service]:
Type:启动时关系的定义, simple:exec启动的进程就是主进程。 forking :exec 启动的进程生成的其中一个子进程成为主进程,启动完成后,旧的主进程会退出。 ontshot:启动下一个进程前主进程退出。 dbus: notify: ldle: PIDFile=/var/run/sshd.pid EnvironmentFile 需要使用到的变量的定义文件 ExecStart= 启动 unit需要执行的命令 ExecStartpre: ExecStartpost: ExecStop=停止unit需要执行的命令 Restart: ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s
(4)install单元
[install]:服务启动或禁用时的一些选项
Alias:
RequlredBy: 被那些unit所依赖,
WanteBy:被那些unit所依赖
4、配置重载
修改了的unit文件需要重载,使用如下命令
#systemctl daemon-reload