1 supervisor介绍
supervisor是一个进程管理的python系统,可以方便的监控,管理linux系统中运行的进程服务 官网地址
supervisor主要包括supervisord和supervisorctl
supervisord是supervisor的服务端,它负责自行调用启动子程序,响应来自客户端的命令,重新启动崩溃或退出的子进程,记录其子进程stdout和stderr 输出以及生成和处理与子进程生存期中的点相对应的“事件”。
supervisorctl是supervisor的命令行客户端(command-line client),提供类似shell的命令 交互功能。supervisorctl通过使用UNIX域套接字或Internet(TCP)套接字与supervisord服务端进行通信
2 supervisor安装与配置
centos系统安装supervisor流程如下:
yum -y install supervisor
安装完成后边界supervisord.conf配置文件
vi /etc/supervisord.conf
在supervisord.conf最后加入
[program:appname] #appname是自己应用的名称
directory = /opt/apps # 程序的启动目录
command = java -jar /opt/apps/springboot-test.jar # 执行启动命令
autostart = true # 当 supervisord 自动启动时应用也一起启动
startsecs = 30 #启动 30 秒后没有异常退出
autorestart = true # 程序异常退出后自动重启
startretries = 3 # 启动失败自动重试次数,默认是 3
user = root # 启动用户
redirect_stderr = true # 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 50MB # stdout 日志文件大小
stdout_logfile_backups = 10 # stdout 日志文件备份数
# stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /var/log/springboot-test.log #应用日志目录
4 使supervisor生效
supervisorctl reload