linux
Supervisor是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制许多进程。
三种安装方式:
yum
pip
下载安装包
不同的系统安装方式推荐:
Centos 用 yum,Ubuntu 用 apt-get 。
这里使用Centos6.9案例:
yum install supervisor
安装完成之后的命令:
echo_supervisord_conf 生成配置文件模板
supervisord supervisor 服务端命令
supervisorctl supervisor 客户端命令
echo_supervisord_conf > /etc/supervisord.conf
修改配置文件:
寻找inet_http_server,去掉前边的封号注释,IP按照个人需求合理配置,设置外网记得密码
[inet_http_server]
port=127.0.0.1:9001
username=root
password=123
末尾添加
[include]
files = /etc/supervisord.d/*.conf
启动
sudo supervisord -c /etc/supervisord.conf
supervisorctl 常用命令
supervisorctl status:查看所有进程的状态
supervisorctl stop :停止
supervisorctl restart : 重启
supervisorctl start :启动
supervisorctl update :配置文件修改后可以使用该命令加载新的配置
supervisorctl reload: 重新启动配置中的所有程序
常见错误:
直接运行 supervisorctl status 报错:
进程管理
Error: Server requires authenticationFor help, use
/usr/local/bin/supervisorctl -h因为你设置访问账号密码,所以只能先supervisorctl进去,在status,其他命令也如此;
supervisord -c /etc/supervisord.conf报错:
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.For help, use
/usr/local/bin/supervisord -h因为9001获取其他你设置的端口被占用了,你可以先lsof -i:9002 kill:pid再重新执行该命令就可以了;
BACKOFF 后退【supervisord只能监控前端运行,设置daemon后台启动的无法监控】
因为你的程序进程设置的daemon模式,取消掉,就可以了。
Unlinking stale socket /var/tmp/supervisor.sock错误:
unlink /tmp/supervisor.sock
错误