我正在寻找一种解决方案,我需要删除日志文件,但在进行删除调用时可能正在访问它们。通过被访问,我的意思是一个进程正在读取或写入文件。在这种情况下,我需要跳过文件而不是删除它。我的服务器也是 Linux 并且 PHP 在 Apache 上运行。
我正在寻找类似于(in pseudo-code
)的东西:
<?php
$path = "path_to_log_file";
$log_file = "app.log";
if(!being_accessed($log_file))
{
unlink($path.$log_file);
}
?>
现在我的问题是如何定义being_accessed
?我知道可能没有语言函数可以直接在 PHP 中执行此操作。我正在考虑使用last_access_time
(也许?)和flock
(但这仅在文件flock
由访问应用程序编辑的情况下才有用)
欢迎任何建议/见解...