【问题标题】:Upstart spawn multiple uWSGI Emperor processes新贵产生多个 uWSGI Emperor 进程
【发布时间】:2017-02-28 07:17:04
【问题描述】:

当 uWSGI 通过 Upstart 启动时,我有独立的 Emperor 实例,每个实例有两个进程(手动运行,见下文)。

Upstart 创建多个皇帝进程:

# ps ax | grep -i emper                                                                                                                       
  888 ?        S      0:53 uwsgi /etc/uwsgi/emperor.ini
  896 ?        S      0:33 uwsgi /etc/uwsgi/emperor.ini
  904 ?        S      0:52 uwsgi /etc/uwsgi/emperor.ini
  905 ?        S      0:34 uwsgi /etc/uwsgi/emperor.ini
  ...

当我杀死所有的 Emperors 并手动运行它时,我有两个 Emperor 的进程和站点的工作人员:

# pstree -up | less
  ...
  -uwsgi(16347)---uwsgi(16348)-+-uwsgi(16349,web)-+-uwsgi(16358)
    |                             |                  |-uwsgi(16360)
    |                             |                  |-uwsgi(17058)
    |                             |                  |-uwsgi(17261)
    |                             |                  |-uwsgi(17410)
    |                             |                  |-uwsgi(17488)
    |                             |                  |-uwsgi(17750)
    |                             |                  `-uwsgi(17770)
    |                             `-uwsgi(16350,web)-+-uwsgi(16361)
    |                                                |-uwsgi(16362)
    |                                                |-uwsgi(16363)
    |                                                |-uwsgi(16364)
    |                                                |-uwsgi(16365)
    |                                                |-uwsgi(16366)
    |                                                |-uwsgi(16367)
    |                                                `-uwsgi(16368)

我对 Emperor 的 Upstart 配置:

# Emperor uWSGI script

description "uWSGI Emperor"
start on runlevel [2345]
stop on runlevel [06]

respawn

exec uwsgi /etc/uwsgi/emperor.ini

我的 uWSGI Emperor 配置:

[uwsgi]
  emperor-tyrant = true
  emperor = %dvassals
  emperor-pidfile = %demperor.pid
  emperor-stats = %demperor.stat.sock
  vassals-include = %dvassals-default.ini
  touch-logrotate = %p
  touch-reload = %p
  touch-reload = %dvassals-default.ini
  log-date = true
  log-truncate = true
  daemonize = /var/log/uwsgi/emperor.log

我在 Upstart 配置上可能错了吗? 日志对我没有帮助。

【问题讨论】:

    标签: uwsgi upstart


    【解决方案1】:

    需要将daemonize 更改为logto

    更多信息在 uWSGI repo:https://github.com/unbit/uwsgi/issues/1510

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 2015-07-18
      • 2015-05-28
      • 1970-01-01
      • 2016-06-27
      • 2015-12-03
      • 2013-11-22
      相关资源
      最近更新 更多