Linux 进程保护 supervisor (java必学课程)


前言

对于我们程序员来说,如果服务被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


也可以看看