linux systemd的services文件编写要注意的 用法
Posted 76 months ago linux system services
execstart 要写绝对路径
User=nginx
Group=nginx
PIDFile=/run/nginx.pid
Type=forking # 定义启动类型
# simple : 默认值,通过ExecStart字段启动进程
# notify : 类似于simple,服务启动结束后会发出通知信号,然后Systemd再启动其他服务
EnvironmentFile=-/etc/sysconfig/nginx # 依赖环境,可以指定多个
EnvironmentFile=-/etc/default/nginx
ExecStartPre=/usr/bin/rm -f /run/nginx.pid # 启动服务之前执行的命令
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx # 启动时,多个会被最后一个覆盖
ExecStartPost= # 启动服务之后执行的命令
ExecReload=/bin/kill -s HUP $MAINPID # 重启服务时执行的命令
ExecStop= # 停止服务时执行的命令
ExecStopPost= # 停止服务之后执行的命令
TimeoutStopSec=5 # 设置停止超时时间
KillMode=process # 重启行为配置,详见如下介绍
# control-group : 默认值,当前控制组里面的所有子进程,都会被杀掉
# process : 只杀主进程,信号可以通过如下方式定义
# mixed : 主进程将收到SIGTERM信号,子进程收到SIGKILL信号
# none : 没有进程会被杀掉,只是执行服务的stop命令
KillSignal=SIGQUIT
Restart=on-failure # 意外失败后重启方式,正常停止不重启
# no : 默认值,退出后不重启
# on-success : 只有正常退出时(退出状态码为0),才会重启
# on-failure : 非正常退出时 (退出状态码非0),包括被信号终止和超时,才会重启
# on-abnormal : 只有被信号终止和超时,才会重启
# on-abort : 只有在收到没有捕捉到的信号终止时,才会重启
# on-watchdog : 超时退出,才会重启
# always : 不管是什么退出原因,总是重启
RestartSec=10 # 重启服务之前,需要等待的秒数,默认100ms
PrivateTmp=True # 给服务分配独立的临时空间