Lee*_*son 4 process php-cli daemon
我正在运行几个 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
Run Code Online (Sandbox Code Playgroud)
但是,当我发出 a 时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
Run Code Online (Sandbox Code Playgroud)
即只有一个进程已停止,其他进程继续运行。
如果我发出更多stop all命令,同样的事情会发生 - 一个脚本尝试退出,其余的挂起。
我已经尝试修改 supervisord.conf 文件以STOPSIGNAL=KILL防止 PHP 脚本没有正确处理默认的 TERM 信号,但同样的事情发生了。
有什么方法可以可靠地将 supervisorctl 与我的脚本一起使用以随意正确启动和停止它们吗?
我在使用 CentOS 6 和 supervisor 2 时遇到了同样的问题。我假设你运行类似的配置。
就我而言,升级解决了问题。但是,我的系统没有可用的最新 supervisord 二进制包。所以这是我的更新方式:
首先,下载以下源 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
Run Code Online (Sandbox Code Playgroud)
然后尝试使用以下命令构建,
rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm
Run Code Online (Sandbox Code Playgroud)
如果失败,请使用 yum 安装任何需要的依赖项。
yum install <dependencies>
Run Code Online (Sandbox Code Playgroud)
然后尝试再次构建:
rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm
Run Code Online (Sandbox Code Playgroud)
然后你就可以安装 supervisord 了,问题就会消失!
yum install ~/rpmbuild/RPMS/noarch/supervisor-3.0-0.5.a10.el6.noarch.rpm
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3697 次 |
| 最近记录: |