如何获得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)
中运行答案 0 :(得分:2)
流程不可能单独生成UI并让启动程序正常结束,即
----> vlc (1488) ---> EOL
|
+--> vlc-ui (??) ---> Application
通过从命令行运行应用程序并检查提示是否几乎立即返回,可以观察到此行为。
另请注意,当父进程退出(您的脚本)时,子进程可能会选择也通过侦听SIGHUP信号退出。如果你还没有这样做,你可以让你的脚本"生活"在调查时添加sleep()
语句会更长。
答案 1 :(得分:0)
在某些情况下可能起作用的另一种方法是反向执行grep解析包含所需进程(例如PHP)的'ps -A'并从结果中删除PID的脚本。您无法控制结果集上的“谁是谁”,但可以控制“谁”实际运行。