Supervisor的作用与配置

最近的项目中有遇到给用户打款,用的是tp5的队列。这个时候需要用到进程管理工具了。
进程的配置文件存放位置 /etc/supervisord.d,以.ini作为扩展名(每个进程的配置文件都可以单独分拆也可以把相关的脚本放一起)。如任意定义一个和脚本相关的项目名称的选项组(/etc/supervisord.d/test.conf)

Supervisor常用配置项

#项目名
[program:withdraw]
#脚本运行的用户身份
user=root
#脚本执行命令
command=php think queue:work --daemon --queue AutoWithdraw
#脚本目录
directory=/home/wwwroot/sim-web_bj/
#进程启动个数,默认1
numprocs=4
# 进程起一个名字,格式:%(program_name)s
process_name=%(program_name)s_%(process_num)02d
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面,才会被重启;如果为true将会无条件自动重启
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=3
startretries=20
#把stderr重定向到stdout,默认 false
redirect_stderr=true
#日志输出
stdout_logfile=/home/wwwlogs/mq_log/withdraw.out.log
stderr_logfile=/home/wwwlogs/mq_log/withdraw.err.log

常用的命令

supervisorctl status //查看所有进程的状态
supervisord //启动supervisord
supervisorctl start all //启动supervisord管理的所有进程
supervisorctl stop all //停止supervisord管理的所有进程
supervisorctl restart all // 重启所有进程
supervisorctl stop zedis //停止zedis, name为[program:xx]中的xx
supervisorctl start zedis //启动zedis
supervisorctl restart zedis //重启zedis
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新加载配置文件并启动
supervisorctl shutdown //停止supervisord

注意点

修改完配置文件后, 记得重新加载新的配置。今天就是修改忘记加载配置了,队列一直不跑。


__EOF__

本文作者Blizzard
本文链接https://www.cnblogs.com/obeigong/p/16479401.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   bilzzard  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示