Supervisor 守护进程的工具安装与使用
使用pip安装
一般来说系统会默认安装一个pip,安装python3时默认也会安装一个
pip install supervisor
安装完成之后系统会多出三个命令
生成配置文件
echo_supervisord_conf
启动
supervisord
进程管理控制
supervisorctl
安装完成之后默认是没有生成配置文件的所以需要生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
在配置文件最末端添加需要运行的程序 配置格式为
program:程序名称【可自定义便于查看状态】 command=程序运行命令【需要绝对路径】 是否自动重启 autorestart=true
例如
[program:foo] command=/bin/cat
添加完成之后保存,启动 supervisord
supervisord -c /etc/supervisord.conf
-c 指定配置文件
启动成功,查看状态
supervisorctl status
启用 Supervisor 自带的web控制台,配置文件添加以下内容
[inet_http_server] port=*:9001 username=user password=123
重启 supervisord
supervisorctl reload
然后可以通过 ip:9001 访问web控制台,注意防火墙、服务器安全组需要放行9001端口
查看服务状态
netstat -tlnp |grep 9001
常见问题
Q)如果/etc/supervisord.conf里新增加了app,需要重启supervisord?
A)可以通过supervisorctl update重新加载配置并根据需要添加/删除,并将重新启动受影响的程序。
常见报错
- 启动时端口占用,应该是启动过了
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.
解决方式,删除启动锁
unlink /tmp/supervisor.sock