Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
安装过程:
环境:ubuntu16.04系统
监控项:开发的jar包
apt安装supervisor
[root@ubuntu ~]# apt-get install -y supervisor
安装完成以后默认服务是开启的
[root@yaoyafei /etc/supervisor]# /etc/init.d/supervisor status
● supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-08-12 13:54:43 CST; 1min 28s ago
Docs: http://supervisord.org
Main PID: 18789 (supervisord)
CGroup: /system.slice/supervisor.service
└─18789 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
配置文件
主配置文件/etc/supervisord.conf 子进程配置文件路径:/etc/supervisord.d/
我们需要在子配置文件路径添加我们的监控项配置文件即可
[root@yaoyafei /etc/supervisor/conf.d]# touch app1.conf #创建app的配置文件并写入一下内容
[program:app1] #app1是我们的项目名
directory = /opt/springboot/ #我们的app1程序文件的路径,
command = /opt/jdk1.8.0/bin/java -jar -server -XX:NewRatio=1 -XX:SurvivorRatio=8 -XX:+UseSerialGC -Djava.io.tmpdir=/tmp -Xms256m -Xmx256m -XX:CompressedClassSpaceSize=128m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:./gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./jvmlogs -XX:-UseGCOverheadLimit xiaoyuan-app.jar #启动命令和启动参数
autostart = true ; #在 supervisord 启动的时候也自动启动
startsecs = 5 ; #启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; #程序异常退出后自动重启
startretries = 3 ; #启动失败自动重试次数,默认是 3
user = root ; #用哪个用户启动
重启服务项目并查看运行状态
/etc/init.d/supervisor restart #重启服务
[root@ubuntu]# supervisorctl status 查看状态
app1 RUNNING pid 4595, uptime 00:00:53