它用来代替 nohup xx.sh ,xx.sh & 守护后台运行进程 并自动重启等等
Github地址
安装很快 mac
pip install supervisor
或者 win,linux
pip install supervisor
然后输出一下标准配置配置文件 并建立一个子目录放每个项目对应的模块化配置
echo_supervisord_conf > /etc/supervisord.conf
mkdir /etc/supervisord.conf.d
然后在主文件里解开这些注释 修改name和password files那里要注意 mac这种BSD是.ini 其他平台Linux,windows是.conf
[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface
username=your_name ; default is no username (open server)
password=your_password ; default is no password (open server)
[include]
files = /etc/supervisord.conf.d/*.ini
然后新建我们的一个配置 对应一个项目
sudo vi /etc/supervisord.conf.d/sql.ini
[program:sql]
directory = /var/www/python
command = /bin/env python test.py
运行
supervisord -c /etc/supervisor.conf
如果出现
Error: Cannot open an HTTP server: socket.error reported errno.EADDRNOTAVAIL (99)
我的是因为上次启动的flask 进程还没有关闭导致socket接口占用过多 无法新开socket接口
ps -ef | grep python
# 这里显示pyhton解释器的进程号
sudo kill -9 进程号1 进程号2...
# 如果你修改了配置需要更新配置
supervisorctl update
再次运行试试
如果有其他的错 试试检查目录是否正确
其他常用操作
查看所有进程
supervisorctl status
启动一个进程 把进程名替换成all 启动所有
supervisorctl start program_name
停止一个进程 进程名替换成all 停止所有
pervisorctl stop program_name
重启一个进程
supervisorctl restart program_name