天天看点

supervisor 从安装到使用(Centos7)

安装

pip install supervisor

生成配置文件(/etc/supervisord.conf)

echo_supervisord_conf > /etc/supervisord.conf

启动supervisor

  • 手动启动
/usr/bin/supervisord -c /etc/supervisor.conf

           
  • 设置开机自启

编辑启动脚本(各系统脚本https://github.com/Supervisor/initscripts)

vim /lib/systemd/system/supervisord.service

# supervisord service for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
           

加入开机自启服务

systemctl enable supervisord.service  #设置开机自启
systemctl start/restart/stop supervisor.service  开启/重启/停止
           
  • 修改配置文件include字段(在配置文件底部,配置include)
[include]
files = etc/supervisord/conf.d/*.conf
           
  • 添加被管理的进程

在/etc/supervisord/conf.d 目录下的 xxx.conf 文件中配置 supervisor 要管理的进程。

如管理tomcat进程:vi /etc/supervisord/conf.d/tomcat.conf

;[program:tomcat] 是被管理的进程配置参数,tomcat是进程的名称,原文用xx表示,tomcat是我要监控的对象
[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run ; 程序启动命令
autostart=true       ; 在supervisord启动的时候也自动启动
startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3       ; 启动失败自动重试次数,默认是3
user=root          ; 用哪个用户启动进程,默认是root
priority=999         ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB  ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=stdout_logfile=/usr/local/tomcat/logs/catalina.out
stopasgroup=true     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=true     ;默认为false,向进程组发送kill信号,包括子进程
environment=LC_ALL="C.UTF-8",  # 启动此服务时设置的环境变量
           
  • 重新读取 *.conf 文件,以识别新添加的服务

supervisorctl reload

  • 全部停止

supervisorctl stop all

  • 全部启动

supervisorctl start all