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

相关推荐
py有趣18 小时前
LeetCode算法学习之移除元素
java·数据结构·算法
朝朝辞暮i18 小时前
从0开始学python(day2)
python
程序员黄同学18 小时前
Python中的列表推导式、字典推导式和集合推导式的性能和应用场景?
开发语言·python
AI小云18 小时前
【Python高级编程】类和实例化
开发语言·人工智能·python
道之极万物灭18 小时前
Python uv虚拟环境管理工具详解
开发语言·python·uv
高洁0119 小时前
【无标题】大模型-模型压缩:量化、剪枝、蒸馏、二值化 (2
人工智能·python·深度学习·神经网络·知识图谱
一晌小贪欢19 小时前
Python爬虫第10课:分布式爬虫架构与Scrapy-Redis
分布式·爬虫·python·网络爬虫·python爬虫·python3
代码AI弗森19 小时前
Python × NumPy」 vs 「JavaScript × TensorFlow.js」生态全景图
javascript·python·numpy
旺仔小拳头..19 小时前
Maven相关
java·maven