我正在使用Symfony2,并且想运行一个用C++编写的长脚本(例如60分钟)。

现在,我通过shell_exec()做到了:

$pid = shell_exec('nohup my/program/written/in/c++.out some arguments > /dev/null 2>/dev/null & echo $!');

如果我不断刷新页面,则脚本可以正常运行,但是如果我进行AFK,则该脚本将被PHP服务器(/ usr / bin / php-cgi)进程终止。

有没有办法将C++程序与PHP服务器进程隔离?使用nohup时,进程的ppid = 1,因此应将其隔离,但不是。

最佳答案

您可以查看Symfony Process组件:http://symfony.com/doc/current/components/process.html

$process = new Process('nohup my/program/written/in/c++.out some arguments');
$process->run();

您将能够运行您的过程。

09-30 14:49
查看更多