【Linux】Supervisor使用详解及示例
参考原文:https://blog.csdn.net/qq_32109917/article/details/120985481
安装和使用非常简单,这里记录一下我的使用过程。
本示例目的为:快速在开发机上部署代码,不建议生产环境如此使用。
首先如参考原文中的安装:
我的系统为contos6.5:执行 yum install supervisor 即可安装完成
然后看主配置文件 vim /etc/supervisord.conf
;主要看这里,包含子配置文件的目录,如你未自定义则此此处一般无需改动
[include] files = supervisord.d/*.ini
; 然后其他的就是文件目录指向,一般也无需改动
; 我这里把日志文件指向 /tmp目录
logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
新建子配置文件
cd /etc/supervisord.d
vim xxxxx.ini 名称随意,主配置文件会自动引入该子配置
[program:jiantou_build] ;项目名称 command = sh /etc/supervisord.d/git-pull.sh ; 启动命令 process_name=%(program_name)s_%(process_num)02d numprocs = 1 ; 开启的进程数量 autostart = true ; 在 supervisord 启动的时候也自动启>动 startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已>经正常启动了 autorestart = true ; 程序异常退出后自动重启 startretries = 3 ; 启动失败自动重试次数,默认是 3 user = root ; 用哪个用户启动 redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默 认 50MB stdout_logfile_backups = 5 ; stdout 日志文件备份数 ; stdout 日志文件,需要手动创建目录(supervisord 会自动创>建日志文件) ; ; stdout_logfile = /home/rtb/supervisor/logs/ugdesk_api_build.log ; ; loglevel=info
下面是需要执行的命令脚本 git-pull.sh(位置随意,只需与子配置中填写一致即可)
#!/bin/sh while true do cd /root/compose/dnmp/npf/jt/ && git checkout . && git checkout master && git pull origin master sleep 15; done ~ ~
启动:supervisord -c /etc/supervisord.conf ,一般这个时候就OK了
查看状态:
supervisorctl status 或者 ps -ef | grep supervisor
其他命令
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新启动配置中的所有程序
如有其他问题可参考原文。
知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。
所谓诚其意者,毋自欺也。