简介
参考链接
https://www.freedesktop.org/software/systemd/man/systemd.unit.html#
systemd.io
https://github.com/systemd/systemd
管理
服务进程管理器, 也是几乎所有进程的祖宗进程;
并发启动, 或先后顺序管理; 可以设置管理环境;
服务
文件格式
一个ini
格式的配置文件;
文件命名
xxx.type
, [a-zA-Z:_.-], name + type
总长度小于256
;
字段
识别的字段解析, 不识别的警告(可能被用户使用)
, 忽略-
开头的字段名或段[-Section]
,段会忽略所有字段;
别名
软连接可以, 会被当成全新服务, 只是内容一样而已; 即内容共享;
配置解析
通用字段: [Unit]
, [Install]
[Unit]
通用字段[Install]
: 执行enable
触发; 创建软连接;
读取
启用了的, 即enable
的, 有列表;
动态修改配置
.d/
里面的*.conf
会按照文件名读取并合并, 可以有多行的拼接, 只能有一个的则替换;
.wants
动态添加依赖, 也可以通过[Install]WantedBy=
被动添加;
.requires/
动态添加;
加载路径
/etc/systemd/system.control/*
/run/systemd/system.control/*
/run/systemd/transient/*
/run/systemd/generator.early/*
/etc/systemd/system/*
/etc/systemd/system.attached/*
/run/systemd/system/*
/run/systemd/system.attached/*
/run/systemd/generator/*
…
/usr/lib/systemd/system/* # /lib -> /usr/lib
/run/systemd/generator.late/*
unit
字段
Description=
精简描述性语言, 最好知道是谁提供的, 具体到公司;
Documentation=
一个uri
可以有多个链接; uri
是https,http,ftp,file:
等;
Before=, After=
指定执行顺序
Wants=
指定依赖关系, 没有顺序则同时执行; 最好启动, 失败也没有关系;
Requires=
指定依赖关系, 没有顺序则同时执行; 一定启动, 否则失败; 不过满足启动条件就算了, 也算成功 ;
BindsTo=
指定依赖关系, 没有顺序则同时执行; 一定启动, 否则失败, 不管什么原因; 即失败就失败;
[Install]
字段
Alias=
直接创建一个别名, 即新的服务, 但是共享内容; enable
才会创建;
WantedBy=, RequiredBy=
给某个服务添加依赖, 即自己被依赖; 主动给其他服务加;
[Service]
说明
服务进程, 一般是进程;
介绍怎么启动
https://www.freedesktop.org/software/systemd/man/systemd.service.html#
执行环境变量配置
https://www.freedesktop.org/software/systemd/man/systemd.exec.html#
杀死服务时怎么杀
https://www.freedesktop.org/software/systemd/man/systemd.kill.html#
操作系统资源怎么分配
https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#