如何从Symfony启动进程PID?

时间:2015-04-18 03:36:53

标签: php linux symfony pid symfony-process

如何获得Symfony启动的进程PID? 代码如下:

$process = new \Symfony\Component\Process\Process('vlc');
$process->start();
return $process->getPid();

返回PID 1488.但是在具有相同PID的系统中没有进程(没有vlc,没有php)。

修改

提交的代码在app / console(Symfony \ Component \ Console \ Command \ Command)

中运行

2 个答案:

答案 0 :(得分:2)

处理分支

流程不可能单独生成UI并让启动程序正常结束,即

----> vlc (1488) ---> EOL
       |
       +--> vlc-ui (??) ---> Application

通过从命令行运行应用程序并检查提示是否几乎立即返回,可以观察到此行为。

挂断信号

另请注意,当父进程退出(您的脚本)时,子进程可能会选择也通过侦听SIGHUP信号退出。如果你还没有这样做,你可以让你的脚本"生活"在调查时添加sleep()语句会更长。

答案 1 :(得分:0)

在某些情况下可能起作用的另一种方法是反向执行grep解析包含所需进程(例如PHP)的'ps -A'并从结果中删除PID的脚本。您无法控制结果集上的“谁是谁”,但可以控制“谁”实际运行。