一、supervisor 安装
1、将下图文件夹文件拷贝到Ubuntu 16系统下。
2、运行install.sh脚本,输入命令:./install.sh
3、验证是否安装成功,输入 命令:supervisorctl,出现如下图所示说明安装成功。
二、supervisor 配置
1、启动supervisord
使用命令supervisord -c /etc/supervisord.conf来启动,现在,来检查是否启动成功。
可以看到,我已经成功启动了supervisor。之后所有的操作都可以用supervisorctl,具体参数supervisorctl –help
2、关闭supervisord
supervisorctl shutdown
3、supervisor配置文件添加要守护的进程
supervisor的默认配置文件路径: vim /etc/supervisord.conf ,可以看到这里已经很多默认配置,只不过大部分都注释掉了。如果添加一个要监视的进程,可以再配置文件最后添加如下配置:
;command=/bin/echo; supervisor启动时将要开启的进程。相对或绝对路径均可。若是相对路径则会从supervisord的$PATH变中查找。命令可带参数。
;priority=999 指明进程启动和关闭的顺序。低优先级表明进程启动时较先启动关闭时较后关闭。高优先级表明进程启动时启动时较后启动关闭时较先关闭。
;autostart=true 是否随supervisord启动而启动
;autorestart=true 进程意外退出后是否自动重启
;startsecs=10 进程持续运行多久才认为是启动成功
;startretries=3 重启失败的连续重试次数
;exitcodes=0,2 若autostart设置为unexpected且监控的进程并非因为supervisord停止而退出,那么如果进程的退出码不在exitcode列表中supervisord将重启进程
;stopsignal=QUIT 杀进程的信号
;stopwaitsecs=10 向进程发出stopsignal后等待OS向supervisord返回SIGCHILD 的时间。若超时则supervisord将使用SIGKILL杀进程
使用supervisor示例
现在我添加一个要守护的进程, 打开vim /etc/supervisord.conf配置文件,在文件末尾增加如下内容:
[program:main]
command =/mnt/share/test/main
autostart=true
autorestart=true
startsecs=3
保存,重启 supervisorctl restart 或者 supervisorctl reload。
输入 supervisorctl ,会显示出当前正在监视的进程,例如:
4.通过这几条命令查看用户进程的状态
亦可使用supervisorctl start test、supervisorctl stop test启动和停止用户进程
5.ps -A 查看用户进程状态,发现mian进程在运行
6.kill 34649 后 再 ps -A 发现之前的main进程被杀掉了,而新的main又起来了
7.vim /etc/rc.local,将supervisor添加到开机自启 ,添加supervisord -c /etc/supervisord.conf
8.web端管理
打开vim /etc/supervisord.conf配置文件,修改以下部分:
[inet_http_server] ; inet (TCP) server disabled by default
port=172.10.0.153:9001 ; 本机IP、端口
username=user ; default is no username (open server)
password=123 ; default is no password (open server)