1. Supervisor介绍
Supervisor是用一个基于Python的通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。我们可以把一个开发完成的普通程序(比如SpringBoot开发的jar文件)轻松转换成后台运行的程序
2. Supervisor安装
以CentOS7为例
#安装epel yum -y install epel-release #安装supervisor yum -y install supervisor #开机自启动 systemctl enable supervisord #启动supervisord服务 (supervisord -c /etc/supervisord.conf systemctl start supervisord
后续运维的操作
# 查看supervisord服务状态 systemctl status supervisord # 查看是否存在supervisord进程 ps -ef|grep supervisord #查看进程中的任务 supervisorctl -c /etc/supervisord.conf
3. Supervisor的配置
我们以新建一个SpringBoot生成的jar文件 app.jar为例
在/etc/supervisord.d/
下新建test.ini文件,vi /etc/supervisord.d/test.ini
配置如下
[program:app] ;;java运行使用到的参数自行调整 command=java -Xms2048M -Xmx4096M -Dconf.home="/opt/app/" -Dlog4j.configuration="file:/opt/app/log4j.properties" -jar /opt/app/app.jar --spring.config.location=/opt/app/ ;;directory=/opt/bin ;;autostart=true ;;autorestart=false ;;stderr_logfile=/tmp/test_stderr.log ;;stdout_logfile=/tmp/test_stdout.log ;;user = test
4. 后续运维操作(supervisorctl)
#以下例子的app就是/etc/supervisord.d/vdc.ini 里的[program:app]的app这个进程 #停止某一个进程 supervisorctl stop app #启动某个进程 supervisorctl start app #重启某个进程 supervisorctl restart app #查看进程状态 supervisorctl status app #停止全部进程 start、restart、stop 都不会载入最新的配置文件 supervisorctl stop all #载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程 supervisorctl reload #根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。 supervisorctl update #也可以先输入supervisorctl,进入交互命名后,直接输入status app等等命令
更多信息可查看官网 http://supervisord.org
文章评论