![使用 Supervisord 时重新加载 UWSGI 的信号?](https://linux22.com/image/594801/%E4%BD%BF%E7%94%A8%20Supervisord%20%E6%97%B6%E9%87%8D%E6%96%B0%E5%8A%A0%E8%BD%BD%20UWSGI%20%E7%9A%84%E4%BF%A1%E5%8F%B7%EF%BC%9F.png)
答案1
stopsignal
The signal used to kill the program when a stop is requested.
This can be any of TERM, HUP, INT, QUIT, KILL, USR1, or USR2.
Default: TERM
Required: No.
Introduced: 3.0
stopsignal=HUP
是你正在寻找的:
[program:uwsgi]
user = uwsgi
command=/usr/sbin/uwsgi ...
autostart=true
autorestart=true
stderr_logfile = /var/log/uwsgi/err.log
stdout_logfile = /var/log/uwsgi/out.log
stopsignal=HUP
答案2
我已经报告了此问题这里,我希望它会被接受为一个功能请求,并且我们都有机会使用该功能。
答案3
如果你运行,supervisorctl status
你会看到 uwsgi 进程的 pid。类似这样,
$ supervisorctl status
uwsgi RUNNING pid 25700, uptime 0:15:48
您需要做的就是手动向此 pid 发送 HUP 信号。
kill -HUP 25700
你可以通过以下方式实现自动化,
supervisorctl status signal | grep -o 'pid\s\+\d*'| awk '{print $2}' | xargs -n 1 kill -HUP
答案4
使用此supervisorctl 状态信号 | grep -o 'pid\s+\d*'| awk '{print $2}' | xargs -n 1 kill -HUP 进行优雅重新加载后,Nginx 无法从上游获取连接