安装(pip安装)
pip安装supervisord
pip install supervisor
生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
载入配置文件
supervisorctl -c /etc/supervisord.conf
常用命令
supervisorctl stop program_name # 停止某一个进程,program_name 为 [program:x] 里的 x
supervisorctl start program_name # 启动某个进程
supervisorctl restart program_name # 重启某个进程
supervisorctl stop groupworker: # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
supervisorctl stop groupworker:name1 # 结束 groupworker:name1 这个进程 (start,restart 同理)
supervisorctl stop all # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
、stop 都不会载入最新的配置文件
supervisorctl reload # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl update # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
安装(文件安装)
wget https://pypi.python.org/packages/31/7e/788fc6566211e77c395ea272058eb71299c65cc5e55b6214d479c6c2ec9a/supervisor-3.3.3.tar.gz#md5=0fe86dfec4e5c5d98324d24c4cf944bd
tar -zxvf supervisor-3.3.3.tar.gz
cd supervisor-3.3.3
python setup.py install
添加应用
supervisord.conf 文件底部追加
[program:web]
command=/usr/bin/python /Users/qp/web/app.py
autostart=true
autorestart=false
stderr_logfile=/tmp/test_stderr.log
stdout_logfile=/tmp/test_stdout.log
问题
- 遇到“Another program is already listening on a port that one of our HTTP servers is configured to use.”这个报错是因为 Supervisor已经启动了,这个时候如果想要解决这个问题,最简单的方法自然是 kill 掉进程,然后重启。
$ ps aux | grep supervisord
qp 95808 0.0 0.0 4286732 744 s003 S+ 10:22上午 0:00.01 grep supervisord
qp 95600 0.0 0.1 4303732 7656 ?? Ss 10:12上午 0:00.20 /usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python /usr/local/bin/supervisord -c /etc/supervisor.conf
$kill 95808 95600
- http://127.0.0.1:9001 refused connection
supervisor.conf 修改如下
控制台输入supervisorctl,进入控制台时要输入的账号密码
[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface
username=user ; default is no username (open server)
password=123 ; default is no password (open server)
[supervisorctl]
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
serverurl=http://127.0.0.1:9001
网友评论