Superivosr出现ERROR 错误的3种原因和解决方案

最近在CentOS上部署Django项目,使用了uWSGI,同时使用了Superivosr守护进程。

在部署项目和使用过程中,出现过三次ERROR (spawn error)错误,每次都是不同的原因。

在网上查找解决方案也总是没有结果,最终还是靠自己分析解决。

一、uWSGI开启多进程时Superivosr配置中未添加相应设置导致的错误

这种问题往往出现在进行restart操作时。

如果WSGI开启了多进程,我们需要让Superivosr关闭进程,但是因为没有添加关闭多进程的配置,所以会有遗留进程。

解决方案

文件中添加如下配置:

stopasgroup = true # 用于停止进程组,即停止所有通过“uwsgi.ini”配置启动的进程。killasgroup = true # 用于关闭进程组,即关闭所有通过“uwsgi.ini”配置启动的进程。

二、uWSGI进程未关闭导致的错误

如果手动启动过uWSGI,则需要先手动结束进程,才能够通过Superivosr进行开启。

解决方案

执行命令:

或者使用“killall”命令通过名称关闭全部相关进程。

此时,再次通过Superivosr启动项目就可以了。

三、配置冲突造成的错误

在使用Superivosr进行进程管理时,不能够同时开启uWSGI的“daemonize ”。

解决方案

删除“uwsgi.ini”文件中的“daemonize ”项即可。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181114A0VXS900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券