【问题标题】:supervisor restart causes zombie uwsgi process主管重启导致僵尸uwsgi进程
【发布时间】:2016-10-20 12:17:02
【问题描述】:

我有一个在 nginx 和 uwsgi 上运行的 python/Django 项目(myproject)。

我正在通过 supervisord 运行 uwsgi 命令。这工作得很好,但是在重新启动 supervisord 时它会创建僵尸进程。我究竟做错了什么?我忽略了什么才​​能干净地做到这一点?有什么建议吗?

主管服务通常需要很长时间。那时我在supervisor.log 文件中找到了以下内容

INFO 等待 stage2_BB_wsgi、stage3_BB_wsgi、stage4_BB_wsgi 死

注意点:我在一台机器上运行多个staging server,即stage2 .. stageN

supervisor.conf 文件提取 [program:stage2_BB_wsgi] command=uwsgi --close-on-exec -s /home/black/stage2/shared_locks/uwsgi_bb.sock --touch-reload=/home/black/stage2/shared_locks/reload_uwsgi --listen 10 --chdir /home/black/stage2/myproject/app/ --pp .. -w app.wsgi -C666 -H /home/black/stage2/myproject/venv/ user=black numprocs=1 stdout_logfile=/home/black/stage2/logs/%(program_name)s.log stderr_logfile=/home/black/stage2/logs/%(program_name)s.log autostart=true autorestart=true startsecs=10 exitcodes=1 stopwaitsecs=600 killasgroup=true priority=1000

提前致谢。

【问题讨论】:

    标签: uwsgi supervisord


    【解决方案1】:

    您需要将stopsignal 设置为INTQUIT

    默认情况下supervisord 在重新启动程序时会发送SIGTERM。这不会杀死uwsgi,只会重新加载它及其工作人员。

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2016-08-04
      • 2012-06-07
      • 1970-01-01
      • 2014-09-30
      相关资源
      最近更新 更多