Supervisorctl 停止所有=停止进程?

Supervisorctl 停止所有=停止进程?

我正在运行几个 PHP CLI 脚本并通过 Supervisor 监控它们。

当我用来supervisorctl监视它们时,脚本显示如下:

cleanup     RUNNING    pid 1805, uptime 0:00:41
postsales   RUNNING    pid 1825, uptime 0:00:10
rebills     RUNNING    pid 1823, uptime 0:00:19
subscribers RUNNING    pid 1827, uptime 0:00:10

但是,当我发出时stop all,supervisorctl 冻结,我需要按 CTRL+C 才能退出。

当我下次运行时supervisorctl,状态如下所示:

cleanup     RUNNING    pid 1935, uptime 0:00:44
postsales   RUNNING    pid 1953, uptime 0:00:05
rebills     STOPPED    Jul 19 12:23 PM
subscribers RUNNING    pid 1951, uptime 0:00:05

即,只有一个进程停止,其他进程继续运行。

如果我发出更多stop all命令,就会发生同样的事情 - 一个脚本尝试退出,其余脚本挂起。

我尝试修改supervisord.conf文件以防STOPSIGNAL=KILLPHP脚本无法正确处理默认TERM信号,但还是发生了同样的事情。

有没有什么方法可以可靠地使用supervisorctl和我的脚本来随意正确启动和停止它们?

答案1

我在使用带有 Supervisor 2 的 CentOS 6 时遇到了同样的问题。我假设您运行了类似的配置。

就我而言,升级解决了这个问题。但是,我的系统没有可用的最新监督二进制包。因此,我进行了以下更新:

首先,下载以下源 RPM supervisor-3.0-0.5.a10.fc16.src.rpm(可从此处获取):http://dl.fedoraproject.org/pub/fedora/linux/releases/16/Everything/source/SRPMS/supervisor-3.0-0.5.a10.fc16.src.rpm)。如果您尝试使用较新的源包,构建可能会失败,并且您可能会陷入依赖地狱。

使用以下方式安装rpm-build包:

yum install rpm-build

然后尝试使用以下命令进行构建,

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm

如果失败,请使用 yum 安装任何所需的依赖项。

yum install <dependencies>

然后尝试再次构建:

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm

然后您将能够安装supervisord并且问题将消失!

yum install ~/rpmbuild/RPMS/noarch/supervisor-3.0-0.5.a10.el6.noarch.rpm

相关内容