最新消息:欢迎光临 魔力 • Python!大家可以点开导航菜单中的【学习目录】,这个目录类似图书目录,更加方便学习!

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

Django教程 小楼一夜听春语 18618浏览 0评论

最近在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 ”项即可。

转载请注明:魔力Python » Superivosr出现ERROR (spawn error)错误的3种原因和解决方案

头像
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网站 (可选)

网友最新评论 (1)

  1. 头像
    哦哦哦
    傻不拉几6年前 (2018-11-14)回复