当前位置: 首页 > 面试题库 >

php执行后台进程

慕晨
2023-03-14
问题内容

我需要在用户操作时执行目录副本,但是目录很大,因此我希望能够执行这样的操作,而用户却不知道完成副本所花费的时间。

任何建议将不胜感激。


问题答案:

假设它在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;
}


 类似资料:
  • 问题内容: 我正在尝试制作一个PHP脚本,我已经完成了脚本,但是大约要花10分钟才能完成它打算完成的过程。这不是问题,但是我想我必须一直保持页面加载,这很烦人。我可以使用它来启动该过程,然后在10分钟后再回来查看它生成的日志文件吗? 问题答案: 好吧,您可以使用“ ignore_user_abort(true)” 因此,脚本将继续起作用(注意脚本的持续时间,也许添加“set_time_limit(

  • 问题内容: 我需要执行一个shell脚本。难得的是我想这样做 我不希望它等待命令完成,我希望它在后台进程中运行。我不想要另一个php线程,因为它将超时,该命令最多可能需要3个小时才能完成。 问题答案: 您需要重定向命令的输出。 如果使用此功能启动程序,则要使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。否则,PHP会挂起,直到程序执行结束。 http://php.net/manual

  • 问题内容: 我正在使用Dockerfile创建Docker映像。我想在启动Docker容器时执行一些脚本。目前,我有一个Shell脚本来执行所有必要的过程 CMD [“ sh”,“ start.sh”] 我想用在后台示例中运行的进程执行shell命令 CMD [“ sh”,“-c”,“ mongod –dbpath / test&”] 问题答案: 除了对您的问题的评论已经指出有关Docker最佳实

  • 我正在使用DockerFile创建一个docker图像。我想在启动docker容器的同时执行一些脚本。目前我有一个shell脚本来执行所有必要的进程 CMD[“sh”,“start.sh”]

  • 问题内容: 我试图通过Linux中的命令行在后台连续运行PHP脚本。我已经尝试过该命令,但是脚本执行似乎很快终止,而脚本应继续运行直到该过程终止。 有什么建议么? 问题答案: 您确定脚本不包含任何错误吗?这就是通常使“ 执行很快终止 ”的原因。 首先,附加: 在脚本顶部显示可能存在的任何错误,然后可以使用: 即使会话断开连接或用户注销,nohup也会运行命令。 要么 与上述相同,但不创建文件。 您

  • 问题内容: 我想使用ffmpeg在php中将视频转换为.flv。目前,我正在执行此操作,但是它会挂起浏览器,直到文件上传完毕。我一直在寻找有关如何在后台运行exec()进程的php文档,同时使用返回的PID更新进程。这是我发现的: 我还使用一个技巧来跟踪后台任务是否正在使用返回的PID运行: 我是否想创建一个单独的.php文件,然后从php cli运行以执行以下功能之一?我只需要稍微推动一下即可开