Linux下Supervisor安装和使用(以后台运行SpringBoot的jar文件为例)

2020-12-23 63点热度 0人点赞 0条评论

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

Terry

文章评论

*

code