php执行后台进程

  时间:2017-07-28
本文章向大家介绍php执行后台进程,需要的朋友可以参考一下。

我需要在用户操作时执行目录副本,但目录非常大,所以我希望能够执行这样的操作,而无需用户知道副本完成所需的时间。

任何建议将不胜感激。

 

解决方法:

假设这是在Linux机器上运行的,我总是像这样处理它:

exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));

这将启动命令$cmd,将命令输出重定向到$outputfile,并将进程ID写入$pidfile

这使您可以轻松监控进程正在执行的操作以及它是否仍在运行。

function isRunning($pid){
    try{
        $result = shell_exec(sprintf("ps %d", $pid));
        if( count(preg_split("/\n/", $result)) > 2){
            return true;
        }
    }catch(Exception $e){}

    return false;
}

原文地址:http://www.manongjc.com/article/1964.html