我正在使用Supervisor并行化 PHP 脚本。当我的脚本从数据库获得某个响应时,它会执行一个命令来停止由 Supervisord 守护进程控制的所有进程,使用supervisorctl
. 这是命令:
// 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 命令吗?