美文网首页
supervisorctl

supervisorctl

作者: 灰斗儿 | 来源:发表于2020-06-23 10:27 被阅读0次

安装(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 

问题

  1. 遇到“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
  1. 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 

相关文章

网友评论

      本文标题:supervisorctl

      本文链接:https://www.haomeiwen.com/subject/pkpcfktx.html