微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux Systemd配置文件详解

以docker.service为例,说明各个参数的含义:

[Unit]  #主要用于配置整个服务的详情信息以及服务依赖,用于快速识别该服务的相关情况以及依赖项目
Description=Docker Application Container Engine  #服务的简单描述
Documentation=https://docs.docker.com		#指定服务的文档,便于管理员快速追溯
BindsTo=containerd.service			#和Requires类似,但是依赖性更强,这里列出来的任何服务停止运行或崩溃,该服务将立即被停止。考虑服务的启动依赖,一般会和After一起使用
After=network-online.target firewalld.service	#用于指定该服务在那些服务之后启动 ,停止时正好相反
Wants=network-online.target			#Requires的弱化版,当该服务启动时,尽可能的启动该指令指定的服务,但不会影响该服务的启动
#Before			#用于指定该服务在那些服务之前启动,停止时正好相反
#Requires  		#设置该服务必须依赖的其他服务,因此在该服务启动之前,指定的服务列表必须全部在线,否则服务将启动失败或掉线。但如果未设置After和Before指令时,该服务和依赖的服务将会并行的同时启动。注意: 该指令依赖的服务不一定要在整个生命周期都保持一直在线,这取决于其他的检查条件
#Requisite		#和Requires类似,区别是在该服务启动时,该指令指定的依赖资源必须全部处于启动成功的状态,否则该服务立马失败,并且不会启动那些失败的依赖服务。因此一般建议Requisite和After 一起联合使用会比较好。
#PartOf			#和Requires类似,但仅作用于服务的停止和重启,表示该服务是所列服务的一部分,会随指定服务的启动而启动。注意: 该指令是单向依赖,服务的主动的重启不会影响其他



[Service]	#主要用于配置整个服务生命周期的管理行为
Type=notify						#设置进程的启动类型。必须设为 simple, exec, forking, oneshot, dbus, notify, idle 之一
#具体见 “http://www.jinbuguo.com/systemd/systemd.service.html#”

EnvironmentFile=-/etc/sysconfig/docker			#指定包含key=value的配置文件 -$(filename)表示可忽略,即当文件不存在或环境变量加载失败时也不影响后续的处理逻辑。
#Environment 						#指定Key=Value 的环境配置

#进程生命周期管理
ExecStart=/usr/bin/dockerd -H unix:// $DOCKER_OPTS	#启动逻辑, 该指令用于启动进程的核心逻辑
ExecReload=/bin/kill -s HUP $MAINPID			#热加载, 该指令用于对进程进行热加载,通常情况用于 配置变更后的热重启
#重启策略
TimeoutSec=0						#一个同时设置 TimeoutStartSec= 与 TimeoutStopSec= 的快捷方式。
RestartSec=2						#多久后重启
Restart=always						#当服务进程正常退出、异常退出、被杀死、超时的时候,是否重新启动该服务。always无条件重启
StartLimitBurst=3					#启动的最大次数限制,超过后停止继续重启
StartLimitInterval=60s					#启动时间的最大间隔


#资源限制
LimitNOFILE=infinity					#限制进程使用的文件描述符数量,等同ulimit -n
LimitNPROC=infinity					#限制进程的数量,等同于ulimit -u
LimitCORE=infinity					#???

TasksMax=infinity

Delegate=yes

KillMode=process					#设置在单元停止时,杀死进程的方法。process 表示仅杀死主进程。

[Install]	#用于配置服务的安装级别,当我们设置服务在Linux的那种级别下启动或开机自启动时会加载该部分(典型的当chkconfig Nginx on或者systemctl enable|disable Nginx.service时会读取该部分的配置)

WantedBy=multi-user.target  				#设置启用服务的依赖服务

参考链接
https://bgbiao.top/post/systemd-doc/
http://www.jinbuguo.com/systemd/systemd.index.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐