PHP exec()不存储进程ID

时间:2014-11-18 09:22:55

标签: php linux process exec

我有一个PHP程序,它通过exec()在后台启动一个进程(进程的输出被发送到/ dev / null)。然后我使用exec("echo $!", $processes[0]),因为我想存储进程的ID,以便稍后终止它。但是,$processes[0]的结果是一个空数组。

为什么没有存储进程ID?请注意,如果我执行后台进程,然后从终端运行echo $!,则会正确输出进程ID。另外一个注意事项是我使用的是基于Linux的Raspberry Pi。

1 个答案:

答案 0 :(得分:3)

为了记录进程ID,您必须将其设置为变量。例如,要在后台启动另一个PHP脚本:

$pid = exec("php mysbackgroundscript.php >/dev/null 2>&1 & echo $!");

$ pid变量应该包含PID。