【问题标题】:PHP exec() not storing Process IDPHP exec()不存储进程ID
【发布时间】:2014-11-18 09:22:54
【问题描述】:

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

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

【问题讨论】:

  • 第二个exec()运行一个新的shell进程,它不知道之前的$!

标签: php linux process exec


【解决方案1】:

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

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

$pid 变量应该包含 PID。

【讨论】:

  • 效果很好。谢谢你的例子。
猜你喜欢
  • 2017-08-18
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多