linux下nginx异常启动自动拉起

# /lib/systemd/system/nginx.service # Stop dance for nginx # ======================= # # ExecStop sends SIGSTOP (graceful stop) to the nginx process. # If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control # and sends SIGTERM (fast shutdown) to the main process. # After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends # SIGKILL to all the remaining processes in the process group (KillMode=mixed). # # nginx signals reference doc: # http://nginx.org/en/docs/control.html #

我使用的是debian系统,所以nginx.service文件放在了/etc/systemd/system/目录下面,nginx.service文件内容如下:

[Unit]


Description=A high performance web server and a reverse proxy server Documentation=man:nginx(8)

After=network.target

[Service]


Type=forking
Restart=on-failure

PIDFile=/run/nginx.pid

ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'

ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'

ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload

ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid TimeoutStopSec=5

KillMode=mixed
RemainAfterExit=no


[Install]


WantedBy=multi-user.target

其中有几个选项很重要

  • Type=forking,

Type的值有simple,oneshot,exec,对于nginx这种多进程模型,必须是forking,否则worker进程在启动时就起不来。

  • KillMode=mixed

KillMode的值有process,control-group,mixed,process只是把主进程给kill,不推荐;control-group,只要一个被kill,所有在control group的都被kill。mixed,给主进程发送SIGTERM信号,给其它进程发生SIGKILL信号。nginx需要用mixed

  • Restart

 这个选项就指定了什么情况下nginx进程被拉起,一般是on-failure

  • Exec系列

是service 命令对应执行的具体命令。

还有一些对于nginx不能配置的选项

GuessMainPID=no

参考资料

https://www.freedesktop.org/software/systemd/man/systemd.service.html

https://www.freedesktop.org/software/systemd/man/systemd.kill.html#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值