好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

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

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

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

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

解决方案

“supervisord.conf” 文件中添加如下配置:

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

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

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

解决方案

执行命令: ps -ef|grep uwsgi kill -9 [端口号]

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

killall -9 uwsgi

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

三、配置冲突造成的错误

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

解决方案

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

查看更多关于Superivosr出现ERROR (spawn error)错误的3种原因和解决方案的详细内容...

  阅读:25次