Python中如何使用supervisor管理多个服务
现在有两个服务,如果全部让 supervisor 去管理的话,配置文件该怎么写呢,直接写两个 program:x 吗?这样试过了,用 ps 可以找到这两个服务的进程,可是服务 2 是不可用的,服务 1 正常。
Python中如何使用supervisor管理多个服务
服务 2 直接启动呢
根据我的实测经验,要不你配置写错,要不你代码写错,supervisor 是支持多个服务的,就是写两个[program:x]类似的 section
#1 直接启动是可以的,服务 2 直接用 gunicorn 启动也可以,配置两个 program 后启动,刚开始服务 2 是可以用的,过一会就不行了,服务 1 始终正常
#2 对的,他确实支持,我也刚不懂为啥了,要挂一起挂还能理解,挂一个留一个费解啊
#1
#2
我在两个 program 中都配置了 stopsignal=TERM 不影响吧
strace 调试试试
不影响TERM是默认值
#6 好的,我试下
用 supervisorctl status 看看状态,有启动问题可以去看相关的 log
#9 状态 running,ps aux 能查到进程,在启动的大概 30 分内可以正常访问,之后就不能正常访问,可是进程还在
[include]
files = /Users/lee/Programs/supvervisor/conf.d/*.conf
一个服务一个文件,应该是配置文件写错了。
我同意 9 楼的说法,看日志,看看是为什么退出
supervisor 的配置文件里最底部,不是有个
;[include]
;files = relative/directory/.ini
前面分号去掉,改成:
[include]
files = /etc/supervisord.d/.conf
没有 /etc/supervisord.d/文件夹就自己新建一个
然后在 /etc/supervisord.d/文件夹下任意新建服务配置文件
那就去看应用的 log 有没有异常吧
感觉是应用的问题和 supervisor 没关系
#14 恩恩,我再去试下单独跑应用
#13 我是直接 echo_supervisord_conf 这个命令生成一份 myapp.conf,然后在这个配置文件中配了两个 program,启动:sudo supervisord -c myapp.conf, 然后这两个服务启动,但二三十分钟之后服务二不可用
supervisor 添加配置之后必须进行 reread 和 updte 操作,不然无效,好像重启也没用
看日志,进城还在,但是服务不能用,确定一下是不是你服务本身有问题
端口冲突?


