linux systemd的services文件编写要注意的 用法

linux systemd的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                            # 给服务分配独立的临时空间