首页 > 解决方案 > 弹出的进程永不消亡

问题描述

我正在使用这个简洁的代码在浏览器上实时跟踪日志文件(谢谢!)问题是即使在用户关闭选项卡/浏览器/PC 后,tail 仍然在运行

有任何想法吗?

窗口关闭时仍在写入日志,所以我知道服务器正在尝试发送某些内容并且失败,但是 if connection_status()​!=0 似乎永远不会触发

<?php
$files = scandir('somefile', SCANDIR_SORT_DESCENDING);
$newestfile = $files[0];
echo "$newestfile<br/>\n";
$handle = popen("tail -fn +1 ./somedir/" . $newestfile . " 2>&1", 'r');
while(!feof($handle)) {
    if (connection_status()​!=0){
    exec("killall tail");
    pclose($handle);
    }
    $buffer = fgets($handle);
    echo "$buffer<br/>\n";
    ob_flush();
    flush();
}
pclose($handle);
?>

更新:

我最终使用了这个的修改版本: https ://github.com/richardvk/web_file_tail

向这个人致敬!

标签: phpapache2popen

解决方案


推荐阅读