Supervisor 多实例运行

配置文件如下:

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
[program:project_name]
command=%(ENV_PYTHON_PATH)s/bin/gunicorn -c %(ENV_SHARED_PATH)s/config/gunicorn.py application:app
directory=%(ENV_APP_REPOSITORY)s
startsecs=1
user=deploy
stopwaitsecs=3
autostart=false
autorestart=false
killasgroup = true
stopasgroup = true

[supervisorctl]
serverurl=http://127.0.0.1:9002 #新增行
logfile = %(ENV_SHARED_PATH)s/log/supervisorctl.log
pidfile = %(ENV_SHARED_PATH)s/run/supervisorctl.pid

[supervisord]
logfile = %(ENV_SHARED_PATH)s/log/supervisor.log
pidfile = %(ENV_SHARED_PATH)s/run/supervisor.pid

[inet_http_server]
port=:9002

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
1
2
3
4
5
6
7
8
9
10
11
;[inet_http_server]         ; 侦听在TCP上的socket,Web Server和远程的supervisorctl都要用到他
不设置的话,默认为不开启。非必须设置
;port=127.0.0.1:9001 ; 这个是侦听的IP和端口,侦听所有IP用 :9001或*:9001。

[supervisorctl] ;这个主要是针对supervisorctl的一些配置
serverurl=unix:///tmp/supervisor.sock ; 这个是supervisorctl本地连接supervisord的时候,本地UNIX socket
路径,注意这个是和前面的[unix_http_server]对应的
默认值就是unix:///tmp/supervisor.sock。。非必须设置
;serverurl=http://127.0.0.1:9001 ; 这个是supervisorctl远程连接supervisord的时候,用到的TCP socket路径
注意这个和前面的[inet_http_server]对应
默认就是http://127.0.0.1:9001。。。非必须项

参考资料:
python supervisor使用