Fix Uwsgi Supervisor and Celery


Ref: http://www.actkr.com/?p=1283

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 修改 Uwsgi 原來的設定檔
# - 注解掉 damemonize
# - 不然 supervisor 會認為他很快掛掉
# - 不會顯示 RUNNING,但事實在 RUNNING
vim /usr/local/uwsgi/python-appname.ini

[uwsgi]
chmod = 666
pidfile = /usr/local/uwsgi/python-appname.pid
;daemonize = /usr/local/uwsgi/python-appname.log
socket = /tmp/uwsgi-python-appname.sock
chdir = /home/user/python/appname
pp = /home/user/python/appname
virtualenv = /home/user/python/appname/venv
touch-reload = /home/user/python/appname/reload.ini
uid = 500
gid = 500
module = manager
callable = app
processes = 2
;stats = 127.0.0.1:9191
harakiri = 20
master = 1
need-app = 1

# 修改 supervisor
# - 一定要加上 stopsignal=INT
vim /usr/local/supervisor/site/python-appname.ini

[program:appname-flask]
command=/usr/local/uwsgi/uwsgi /usr/local/uwsgi/python-appname.ini
directory=/home/user/python/appname
environment=PYTHONPATH="/home/user/python/appname:/home/user/python/appname/venv/lib/python2.7:/home/user/python/appname/venv/lib/python2.7/site-packages:$PYTHONPATH"
user=root
numprocs=1
stdout_logfile=/usr/local/supervisor/log/appname-flask.out.log
stderr_logfile=/usr/local/supervisor/log/appname-flask.err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=12
stopsignal=INT

# 刪掉所有相關的東西
killall -9 uwsgi supervisord celery

# 重新啟動 Supervisor
/usr/local/bin/supervisord -c /usr/local/supervisor/etc/supervisord.conf

# 查看運行情況
/usr/local/bin/supervisorctl -c /usr/local/supervisor/etc/supervisord.conf status

# 同樣的管理 Supervisor
/usr/local/bin/supervisorctl -c /usr/local/supervisor/etc/supervisord.conf