【发布时间】:2012-02-06 09:20:30
【问题描述】:
我正在使用 Supervisor 并行化一个 PHP 脚本。当我的脚本从数据库中得到某个响应时,它会执行一个命令来停止使用 supervisorctl 的 Supervisord 守护进程控制的所有进程。这是命令:
// gracefully stop all processes in supervisor's group called processes
$cmd = 'sudo /usr/bin/supervisorctl stop processes:*';
exec( $cmd, $outputs );
问题在于,当在 Supervisor 控制下的 PHP 脚本中触发此命令时,该命令似乎没有任何影响。为什么?
如果我启动这组在 Supervisor 中运行的进程,然后直接从命令行触发另一个脚本实例,它会工作并且所有 Supervisor 进程都会停止。
发生了什么事?守护进程的 PHP 脚本不能exec() shell 命令吗?
【问题讨论】:
标签: php exec supervisord