安装配置Supervisor

应用场景

应用程序需要24小时不间断运行,这时可使用 supervisor 监控应用程序的进程,当发生应用程序内部错误退出、进程被杀死等情况时,自动重启应用程序。

官方网站 http://supervisord.org


支持的系统

Supervisor 是一个 UNIX 下的进程管理软件
Supervisor 不可以在任何版本的 Windows 上运行
Supervisor 可以运行在 Python 2.4 或者更高的 Python版本,但是不可以在任何 Python 3 的版本上运行。

1:安装

[root@oncloud0 ~]# pip install supervisor

安装完成后出现:

[root@oncloud0 ~]# ll /usr/bin/super*
-rwxr-xr-x 1 root root 402 725 14:39 /usr/bin/supervisorctl
-rwxr-xr-x 1 root root 398 725 14:39 /usr/bin/supervisord

说明
supervisor服务守护进程:/usr/bin/supervisord
supervisor服务控制程序:/usr/bin/supervisorctl
使用supervisord的命令行客户端管理工具supervisorctl,来管理进程

2:配置

运行 echo_supervisord_conf命令,可输出详细的配置文件内容,配置文件中分号“;”的功能为注释

[root@oncloud0 ~]# echo_supervisord_conf

将默认的配置文件重定向至/etc路径下(方便管理)

[root@oncloud0 ~]# echo_supervisord_conf > /etc/supervisord.conf

文件最后有个配置项:【一定要打开include本行,就是要去掉前面的分号】

[include]
;files = relative/directory/*.ini
files = /etc/supervisor/*.conf

可以把需要监控的脚本单独写在一个文件中,在这里配置路径进行监控

[root@oncloud0 supervisor]# ll /etc/supervisor/*.conf
-rw-r--r-- 1 root root 566 8月   2 18:27 /etc/supervisor/flaskzhuzhong.conf

flaskzhuzhong.conf 这个文件(用 Python 和 Flask 框架编写的一个服务)就是单独配置的需要监控的程序,以下是具体配置内容:

[root@oncloud0 supervisor]# cat /etc/supervisor/flaskzhuzhong.conf
[program:自定义的程序名字]
directory=脚本的绝对路径
command=python demo.py
redirect_stderr=true
stdout_logfile=日志的输出绝对路径+文件名字
autostart=true                  ; 程序是否随supervisor启动而启动  
autorestart=true                ; 程序停止时,是否自动重启  
stopasgroup=true                ; send stop signal to the UNIX process group (default false)
killasgroup=true                ; SIGKILL the UNIX process group (def false)

Notice: 如何停止子进程

场景:如果supervisord.conf中配置的command是执行一个bash,而bash里执行Java,那么当使用supervisorctl stop [programname]停止程序时,只有上层进程被停止,而java进程没有被停止。
解决办法:
在配置文件中设置:
stopasgroup=true
killasgroup=true

3:启动 supervisor

[root@oncloud0 supervisor]# supervisord -c /etc/supervisord.conf

4:查看监控的程序

方式1:使用supervisorctl管理程序

开启/停止某个程序
supervisorctl [start | stop] [program名称] //在supervisord.conf中定义的
查看进程状态
$supervisorctl status

$ supervisorctl status
$ supervisorctl stop usercenter
$ supervisorctl start usercenter
$ supervisorctl restart usercenter
$ supervisorctl reread
$ supervisorctl update

方式2:启动 web 管理界面

修改如下:

[root@oncloud0 supervisor]# vim /etc/supervisord.conf

[inet_http_server]         ; inet (TCP) server disabled by default
port=IP:9001        ; ip_address:port specifier, *:port for all iface
username=xxxxx              ; default is no username (open server)
password=xxxxx               ; default is no password (open server)

浏览器打开 http://IP:9001 进行访问,需要输入上面配置的用户名密码。


5:配置开机启动 supervisor 【可以配置也可以不配置,最好配置~】

第1步:新建文件 supervisord.service 并进行配置
第2步:将文件 supervisord.service 拷贝至 /usr/lib/systemd/system/supervisord.service

第1步:新建文件 supervisord.service 并进行配置

[root@oncloud2 supervisor]# > supervisord.service

# 写入如下配置,然后保存,查看文件
[root@oncloud2 supervisor]# cat supervisord.service
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
# 需要查看并配置服务器实际安装过程中配置文件 supervisord.conf 所在的路径
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

# 将文件拷贝至:“/usr/lib/systemd/system/supervisord.service”
# https://www.cnblogs.com/94cool/p/5952219.html
# 2018年 06月 05日 星期二 14:39:18 CST

第2步:将文件 supervisord.service 拷贝至 /usr/lib/systemd/system/supervisord.service

# 拷贝
[root@oncloud2 supervisor]# cp supervisord.service /usr/lib/systemd/system/supervisord.service
# 设置为开启启动
[root@oncloud2 supervisor]# systemctl enable supervisord
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
# 验证一下是否为开机启动
[root@oncloud2 supervisor]# systemctl is-enabled supervisord
enabled

参考链接:
http://www.cnblogs.com/shijingjing07/p/6024066.html
http://www.ttlsa.com/linux/using-supervisor-control-program/
http://blog.csdn.net/slx_2011/article/details/44751951
http://www.cnblogs.com/ajianbeyourself/p/5534737.html
http://www.jianshu.com/p/326da8d1ba84
配置Supervisor开机启动

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值