带系统看门狗的gUnicorn

时间:2020-09-17 19:35:57

标签: gunicorn systemd

我们需要监视gUnicorn / Django应用程序,如果发生故障,请尝试重新启动它。我们正在使用gunicorn 20.0.4。

我的以下nrs.service在systemd上运行良好。我试图找出是否有可能将systemd的看门狗功能与gUnicorn集成。从源头看,我看不到任何地方正在调用sd_notify(“ WATCHDOG = 1”),所以我想不,gunicorn不知道如何让系统知道它已经启动(它调用sd_notify(“ READY = 1 ...”)),但在其运行循环中没有任何信号表明它仍在运行)

这是nrs.service文件。我已经删除了看门狗var,因为它显然在启动后不久将我的服务发送到失败状态。

[Unit]
Description=Gunicorn instance to serve NRS project
After=network.target

[Service]
WorkingDirectory=/etc/nrs
Environment="PATH=/etc/nrs/bin"
ExecStart=/etc/nrs/bin/gunicorn --error-logfile /etc/nrs/logs/gunicorn_error.log --certfile=/etc/httpd/https_certificate/nrs.cer --keyfile=/etc/httpd/https_certificate/server.key --access-logfile /etc/nrs/logs/gunicorn_access.log --capture-output --bind=nrshost:8800 anomalyalerts.wsgi
#WatchdogSec=15s
#Restart=on-failure
#StartLimitInterval=1min
#StartLimitBurst=4

[Install]
WantedBy=multi-user.target

所以系统化的看门狗正在做它的事情,看起来好像开箱即用的gunicorn不支持它。对'monkey-patching'不太熟悉,但是我在考虑是否要使用这种监视方法,我将不得不实现一些自定义代码吗?其他想法只是让watch命令检查服务并尝试重新启动它,这可能会更容易。

谢谢 杰森

0 个答案:

没有答案
相关问题