supervisor管理启动重启,Java,Go程序Demo

简介

Supervisor 是一款 Python 开发的进程管理系统,允许用户监视和控制 Linux 上的进程,能将一个普通命令行进程变为后台守护进程,异常退出时能自动重启

1、安装

复制代码
yum -y install supervisor

2、配置默认配置文件

c 复制代码
echo_supervisord_conf > /etc/supervisord.conf

3、修改主配置文件配置

c 复制代码
vim /etc/supervisord.conf
... ...
# 其他配置保持默认即可
[include]
files = /etc/supervisord.d/*.ini
# 开启web控制台
[inet_http_server]         ; inet (TCP) server disabled by default
port=0.0.0.0:9009        ; ip_address:port specifier, *:port for all iface
username=root              ; default is no username (open server)
password=root               ; default is no password (open server)

4、创建子进程 supervisor.ini 配置文件之后放在 /etc/supervisord.d/ 文件夹下

giftpanel go程序

recharge java程序

c 复制代码
[program:giftpanel]
#指定进程的工作目录
directory=/opt/gs/giftpanel/
#管理的进程的启动命令
command=/opt/gs/giftpanel/gift-panel  -DserviceCenter=ip -Dnamespace=gs-test -DserverPort=9082
#启动的进程数量	
numprocs=1		
#如果设置为 "true",则在 Supervisor 启动时会自动启动该进程。
autostart=true	
#重试次数
startretries=3	
#是否应自动重新启动该进程
autorestart=true	
#"redirect_stderr" 参数指定了是否将进程的标准错误重定向到标准输出文件中。如果设置为 "false",则标准错误将不会被重定向到标准输出文件中。
redirect_stderr=false
#log目录	
stdout_logfile=/data/supervisorlogs/gs/giftpanel.log
#"stdout_logfile_maxbytes" 参数指定了标准输出日志文件的最大大小,一旦达到这个大小,日志文件将会被回滚。
stdout_logfile_maxbytes=50MB
#"stdout_logfile_backups" 参数指定要保留的标准输出日志文件的备份数量。当日志文件达到指定数量时,最旧的备份将被删除
stdout_logfile_backups=10
#err log目录
stderr_logfile=/data/supervisorlogs/gs/err/giftpanel.err.log
#"stderr_logfile_maxbytes" 参数指定了标准错误输出日志文件的最大大小,一旦达到这个大小,日志文件将会被回滚
stderr_logfile_maxbytes=10MB  

[program:recharge]
command=/usr/lib/jvm/java-1.8.0/bin/java -jar -server -Xms512M -Xmx2048M  -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/gs/recharge/heapdump.hprof -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data/gs/recharge/gc.log -DserverId=500 -DserviceCenter=ip  -Dnamespace=gs-test -DserverPort=9090 /opt/gs/recharge/recharge-1.0-SNAPSHOT-gs.jar
numprocs=1
autostart=true
startretries=3
autorestart=true
redirect_stderr=false
stdout_logfile=/opt/supervisorlogs/recharge.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stderr_logfile=/opt/supervisorlogs/recharge.log
stderr_logfile_maxbytes=10MB


#如果需要配置分组 后面添加配置
[group:gs]
programs=giftpanel,recharge

5、启动

第一次配置需要重启supervisord

c 复制代码
systemctl start supervisord.service

之后添加子配置(*.ini)文件 只需要update即可

c 复制代码
supervisorctl update

6,1启动项目未分组情况下

c 复制代码
重启所有
supervisorctl restart all
supervisorctl restart recharge
supervisorctl restart giftpanel

停止所有
supervisorctl stop all
supervisorctl stop giftpanel
supervisorctl stop recharge

6,2启动项目分组情况下

c 复制代码
重启所有
supervisorctl restart gs:*
重启
supervisorctl restart gs:recharge
supervisorctl restart gs:giftpanel

停止所有
supervisorctl stop gs:*
停止
supervisorctl stop gs:giftpanel
supervisorctl stop gs:recharge

查看log

tail -f /data/supervisorlogs/gs/giftpanel.log

相关推荐
程序猿阿越16 分钟前
Kafka4源码(二)创建Topic
java·后端·源码阅读
悟空码字20 分钟前
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
java·spring boot·后端
省长31 分钟前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·后端·开源
NE_STOP1 小时前
MyBatis-动态sql与高级映射
java
后端AI实验室1 小时前
我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了
java·ai
sTone873752 小时前
web后端开发概念: VO 和 PO
java·后端·架构
SimonKing3 小时前
JetBrains+Qoder变身Agentic 编码平台,媲美Cursor、Trae等AI编程平台
java·后端·程序员
Seven973 小时前
NIO:解开非阻塞I/O高并发编程的秘密
java
明月_清风4 小时前
Python 装饰器前传:如果不懂“闭包”,你只是在复刻代码
后端·python
明月_清风4 小时前
打破“死亡环联”:深挖 Python 分代回收与垃圾回收(GC)机制
后端·python