在 Supervisord 中通过 sh 脚本启动程序

launching program through sh script in Supervisord

我有一个脚本 run.sh 可以启动 python 发布订阅监听器,如下所示:

export MY_ENV_VAR='/root/config/'
python /usr/local/lib/python2.7/dist-packages/listener/main.py

我设置了 Supervisord,这样我就可以 运行 我的脚本如下:

[program:Listener]
command=/bin/bash run.sh
directory=/root/listener
process_name=%(program_name)s
autostart=true
autorestart=true
startretries=3

我的问题是:当我在 9001 端口访问我的 Supervisord UI 并按下 Listener 行旁边的 STOP 时,我真的停止了我的 Listener 吗?我的印象是,由于 supervisord 指向 .sh 脚本,因此当我单击 STOP.

时它不会停止 python 脚本

你可以尝试指定

stopasgroup=true

配置文件中的参数。

所以 supervisord 也会向子进程发送 kill 信号:

http://supervisord.org/configuration.html