如何获取 Symfony 启动的进程的 PID? 代码如下
$process = new \Symfony\Component\Process\Process('vlc');
$process->start();
return $process->getPid();
返回 PID 1488。但系统中没有具有相同 PID 的进程(没有 vlc,没有 php)。
编辑
呈现的代码在应用程序/控制台 (Symfony\Component\Console\Command\Command) 中运行
最佳答案
进程 fork
进程单独生成其 UI 并让启动进程正常结束的可能性不大,即
----> vlc (1488) ---> EOL
|
+--> vlc-ui (??) ---> Application
通过从命令行运行应用程序并检查提示是否几乎立即返回,可以观察到此行为。
挂断信号
另请注意,当父进程退出(您的脚本)时,子进程也可以通过监听 SIGHUP 信号来选择退出。如果您还没有这样做,您可以在调查时通过添加 sleep()
语句让您的脚本“存活”更长时间。
关于php - 如何让 Symfony 启动进程 PID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712596/