我有一个PHP程序,它通过exec()在后台启动一个进程(进程的输出被发送到/ dev / null)。然后我使用exec("echo $!", $processes[0])
,因为我想存储进程的ID,以便稍后终止它。但是,$processes[0]
的结果是一个空数组。
为什么没有存储进程ID?请注意,如果我执行后台进程,然后从终端运行echo $!
,则会正确输出进程ID。另外一个注意事项是我使用的是基于Linux的Raspberry Pi。
答案 0 :(得分:3)
为了记录进程ID,您必须将其设置为变量。例如,要在后台启动另一个PHP脚本:
$pid = exec("php mysbackgroundscript.php >/dev/null 2>&1 & echo $!");
$ pid变量应该包含PID。