当使用flock检查另一个进程是否正在运行时,MySQL进程有时会使用该文件

时间:2016-09-21 11:39:48

标签: php mysql

我使用PHP函数flock来检查另一个进程是否正在运行,但有时该文件被MySQL进程使用。这是lsof命令的结果:

enter image description here

这是我的php脚本:

$list = [];
$handle_list = fopen("$backup path/log/list.txt", "a+");
if(flock($handle_list, LOCK_EX | LOCK_NB))
{
    while(($buffer = fgets($handle_list, 4096)) !== false)
    {
        $buffer = str_replace(["\r", "\n"], '', $buffer);
        $list[] = $buffer;
    }
}
else
{
    echo date('Y-m-d H:i:s'). " : ERROR : Another process running\n\n\n";
    exit(-1);
}

如果没有MySQL进程锁定文件,脚本工作正常。我不知道MySQL什么时候可以使用文件?

0 个答案:

没有答案