supervisord实例配置

在supervisord初体验篇我们已经把supervisord搭建起来了,也了解了一些基本的使用方法
supervisord初体验传送门

下面我们就开始配置一个实际使用的实例程序


supervisord常用的一些参数配置

参数作用示例
process_name程序的名字testSupervisord
user程序启动的用户,默认是rootroot
directory程序启动的目录/home/leon/projects/usercenter
command程序启动的命令python3 test.py
startsecs启动 5 秒后没有异常退出,就当作已经正常启动了5
startretries启动失败时候重试次数,默认3次3
autorestart程序异常退出后自动重启true
autostart在supervisord启动的时候一起启动true
redirect_stderr把 stderr 重定向到 stdout,默认 falsetrue
stdout_logfile_maxbytesstdout 日志文件大小,默认 50MB50MB
stdout_logfile_backupsstdout 日志文件备份数,默认102
stderr_logfile错误日志输出路径/var/log/supervisor/progress.err.log
stdout_logfile正常日志输出路径/var/log/supervisor/progress.out.log
numprocs启动的守护进程数量3
priority守护进程的优先级999
umask进程的权限002
environment添加环境变量environment=PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3

注意!


1. 当你的numprocs大于1时
process_name表达式要写成:%(program_name)s_%(process_num)02d

2. Python环境设置

python的import机制,python中的模块site负责模块导入路径的添加(Append module search paths for third-party packages to sys.path)查看其main方法,其中有一个addusersitepackages的动作,是导入当前用户的module search paths。进一步查看源码,是通过get_config_var('userbase')获取~/.local(sysconfig.py line 205),而~代表就是环境变量当前用户。
所以我们可以通过添加HOME环境变量来让python正确的找到模块导入路径。
使用supervisor出现ModuleNotFoundError错误时是因为sys.path未加载所需模块所在的路径,可以通过设置environment来指明所需模块的路径。

使用PYTHONPATH指明:
environment=PYTHONPATH=/home/user/.local/lib/python3.6/site-packages
对于指定用户安装的python模块(pip install XXX --user 安装用户),也可以通过指定HOME来让python找到模块所在的路径:
environment=HOME=/home/user

实例


下面是官方给出的一个实例

[program:cat]
command=/bin/cat
process_name=%(program_name)s
numprocs=1
directory=/tmp
umask=022
priority=999
autostart=true
autorestart=unexpected
startsecs=10
startretries=3
exitcodes=0
stopsignal=TERM
stopwaitsecs=10
stopasgroup=false
killasgroup=false
user=chrism
redirect_stderr=false
stdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
environment=A="1",B="2"
serverurl=AUTO

参考文献:
supervisord官方手册:http://supervisord.org/index.html
supervisor环境变量:https://blog.csdn.net/hunter_yang_Tuziki/article/details/86675121

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小羽Jary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值