程序都嘶叫起来了。uWSGI worker 1 screams: UAAAAAAH my master disconnected: i will kill myself !!!

2016-04-04 11:40:33 +08:00
 zonghua

supervisor + uwsgi

无法重启程序

*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x24ec4e0 pid: 4274 (default app)
*** uWSGI is running in multiple interpreter mode ***
gracefully (RE)spawned uWSGI master process (pid: 4274)
spawned uWSGI worker 1 (pid: 4348, cores: 1)
spawned uWSGI worker 2 (pid: 4349, cores: 1)
spawned uWSGI worker 3 (pid: 4350, cores: 1)
spawned uWSGI worker 4 (pid: 4351, cores: 1)
Mon Apr  4 11:29:32 2016 - uWSGI worker 1 screams: UAAAAAAH my master disconnected: i will kill myself !!!
Mon Apr  4 11:29:32 2016 - uWSGI worker 2 screams: UAAAAAAH my master disconnected: i will kill myself !!!

执行重启命令

sudo supervisorctl start demo
demo: ERROR (abnormal termination)

uwsgi.log 可能是重启的时候 uwsgi 进程仍在监听该端口

probably another instance of uWSGI is running on the same address (127.0.0.1:8001).
bind(): Address already in use [core/socket.c line 769]

我的配置文件 uwsgi.ini

[uwsgi]
# Django-related settings
chdir           = /home/www/Documents/demo
module          = demo.wsgi:application
env             = DJANGO_SETTINGS_MODULE=demo.settings_production
home            = /home/www/Documents/demo/venv
user            = www
uid             = www
pcre-jit
thunder-lock
enable-threads
master          = true
touch-reload    = /home/www/Documents/demo/reload
processes       = 4
socket          = 127.0.0.1:8001
chmod-socket    = 664
vacuum          = true

supervios conf

[program:vblue]
directory= /home/www/Documents/demo
command = /home/www/Documents/demo/venv/bin/uwsgi --ini /home/www/Documents/demo/uwsgi.ini
autostart=true
autorestart=true
redirect_stderr = true
stdout_logfile = /home/www/Documents/demo/logs/out.log
stdout_logfile_maxbytes = 1MB
stderr_logfile= /home/www/Documents/demo/logs/err.log

不知道怎么重启的时候关掉 uwsgi 进行监控, 官方文档只有推荐用 Circus

6495 次点击
所在节点    Python
8 条回复
indust
2016-04-04 12:08:34 +08:00
stopsignal=QUIT
zonghua
2016-04-04 12:42:52 +08:00
@indust http://uwsgi-docs.readthedocs.org/en/latest/Options.html?highlight=pidfile#stop 感觉不需要 supervisor 了, uwsgi 本身就有一个主从的守护进程。
refraction
2016-04-04 18:11:17 +08:00
这报错信息实在是 哈哈哈哈
zonghua
2016-04-04 18:58:35 +08:00
@refraction 有分享一下配置文件吗
refraction
2016-04-04 20:22:16 +08:00
@zonghua 啊?回复错人了吧
clino
2016-04-05 11:54:32 +08:00
看不出是什么原因导致的 master 进程挂掉

'执行重启命令

sudo supervisorctl start demo'
然而这个并不是重启命令,重启是 restart

我经常加的 supervisor 参数有这两个,你试试看有木有用:
stopsignal=QUIT
exitcodes=0,1,2 //根据你的情况改

另外直接用 uwsgi 自己跑试试看有没有 master 会挂掉的问题? 如果 uwsgi 单独跑不会出问题,但是用 supervisor 跑有问题,考虑和 supervisor 的参数有没有关系.
zonghua
2016-04-05 13:20:23 +08:00
@clino 我先 stop 了,然后再 start 的。嗯,我试一下用关闭信号。
clino
2016-04-05 14:25:18 +08:00
@zonghua 如果你先 stop 还这么提示 说明要么没真正停止,要么变僵尸进程了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/268433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX