我正在使用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();
您将能够运行您的过程。