前言

对于我们程序员来说,如果服务被Kill掉,然后又没有预警的情况下及时解决问题,这样会有相当一部分正在使用的用户,无法请求到后台,前端页面没有后台接口支撑,相当于一个没有骨架的人一样,变成为一坨烂泥。作为运筹帷幄的我们,要料想到未发生的事情,及时做好预警处理,以及服务重启。以下为Supervisor安装以及配置 java的jar包重启

Supervisor 介绍

他是用 Python 写的进程管理工具,以成为你的进程管理神器,特别适合管理后台服务、守护进程,可以帮你处理的服务:

  • 自动重启 崩溃或异常退出的进程(比如你的 java、go、Python 服务)
  • 统一管理多个进程,不用再手动 nohup 或 & 后台运行。
  • 日志收集 自动捕获进程的 stdout 和 stderr,方便排查问题。
  • 自带Web 管理界面,可视化查看和管理进程状态,可以很直观看到你的服务运行状态

1 安装

首先检查服务器是否安装Supervisor,如果已经安装,就不需要在重复
1.1 更新软件包索引
sudo apt update

1.2、安装supervisor
yum install -y supervisor

1.3、设置开机自启并启动服务
systemctl enable supervisord

2 启动

启动/关闭/重启等操作
systemctl start supervisord 启动
systemctl stop supervisord 关闭
systemctl restart supervisord 重启

启动完后检查是否正常,类似一下就是正常安装了
1747738443656.jpg

3 配置

长话短说,简而言之就是配置你的jar包位置以及你的日志输出文件地址,这些对于中小型公司已经够了

3.1 配置supervisord.conf

安装完成后会生成该文件 /etc/supervisord.conf

1747739014139.jpg
图片 "红框"里面的内容是配置,你的jar包路径以及日志的

图片 "蓝框"里面的内容是配置,通过ip:端口、以及访问页面登陆的账号密码,访问的页面的,
页面如下

访问路径例子:http://服务器ip:设置的端口 http://xx.xx.xx.xx:xxxx/,页面如下
image.png

3.2 编写一个ini的文件上传至/etc/supervisord.d文件夹
ini里面就是配置jar包,以及输出日志等等。照如下代码配置正常来说99%的错误率
1747911067315.jpg
image.png

代码如下

[program:xiaomi]
command=/data/jdk/jdk-17.0.0.1/bin/java -jar /data/xiaomi/xiaomiBms.jar.jar
directory=/data/xiaomi ; 替换为您的应用所在目录
autostart=true
autorestart=true
startretries=3
user=root ; 替换为运行该程序的用户
;redirect_stderr=true
;stdout_logfile=/data/xiaomi/logs/web_info.log
stdout_logfile_maxbytes=200MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=info

执行

执行 supervisorctl-->updata
进入supervisor 后 输入update
status 查看状态 ,RUNNNING成功,如果为fail检查一下ini文件是否正确
image.png