centos7 supervisor管理jar服务

随着微服务的盛行,目前很多jar包已经不放到tomcat等web服务器上了,而是直接java -jar命令启动。
我们使用supervisor来管理jar包的启动,停止,重启等生命周期,监控其运行情况。

centos7安装supervisor
yum install epel-release -y
yum install -y supervisor
systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动supervisord服务

vim /etc/supervisor.conf 把最后一行的.ini改成.conf**
在/etc/supervisor.d/下面新建一个文件管理jar服务
vim /etc/supervisor.d/app.conf
按以下格式写
centos7 supervisor管理jar服务_第1张图片

[program:app]
directory = /data/product/app ; 程序的启动目录
command = java -jar -Xms2g -Xmx2g -Dspring.profiles.active=prod app-web-0.0.1-SNAPSHOT.jar ; 启动命令
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 30        ; 启动 30 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
user = root          ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 1000MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 5     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录
stdout_logfile = /data/product/app/nohup.out ;应用日志目录

**# 读取有更新(增加)的配置文件,不会启动新添加的程序
supervisorctl reread

# 重启配置文件修改过的程序
supervisorctl update (可单独加某个服务的后缀)

# 关闭程序
supervisorctl stop app

# 启动程序
supervisorctl start app

# 重启
supervisorctl restart app

这里命令最后跟的app就是文件名,以此类推,每添加一个jar服务,都是以文件名区分,文件名就是服务名。

注意此处可能会有报错 supervisorctl status springboot-test 可查看报错信息
在这里插入图片描述这个问题可以通过使用绝对路径的java命令解决
在这里插入图片描述这是因为很多服务器的jdk环境是通过源码安装的,服务找不到java命令的路径,yum安装和rpm安装的就不会出现这个问题

你可能感兴趣的:(centos7 supervisor管理jar服务)