我想用 Symfony Process 组件运行一个孤立的后台进程。我不能使用 kernel.terminate 事件。这是我试图做的:
这是我想运行的过程:
// script.php
$f = fopen('test'.uniqid().'.txt', 'w');
for ($i = 0; $i < 1000; $i++) {
fwrite($f, "Line $i \n");
sleep(2);
}
fclose ($f);
这是我想运行我的进程的脚本:
// test.php
$command = "php script.php > /dev/null 2>&1 &";
$p = new \Symfony\Component\Process\Process($command);
$p->start();
echo $p->getPid()."\n";
问题是,test.php
终止后,script.php
无法正常工作。主脚本的终止会杀死所有子进程。是否可以让孤立进程与 Symfony 进程一起运行?