将文本附加到文件时,lsof 不会将文件显示为已打开/访问

将文本附加到文件时,lsof 不会将文件显示为已打开/访问

在一次会话中,我将一些文本附加到文件中,如下所示:

while true;do echo some_text >> file1 ; done

在同一目录的另一个会话中,我运行:

lsof file1

它不返回任何输出。知道为什么吗? lsof 不应该报告写入文件的进程吗?我使用的是 RHEL 7.2

答案1

这只是“运气不好”(或者如果你愿意的话,时间窗口非常窄)。您可以通过限制写入来减慢进程pv,以延长文件打开的时间:

echo "0000000000000000000000000000000000000000000000000000000000" | pv -L 2 >> opened.dat

在另一个终端中:

lsof opened.dat 
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
pv      30636   me    1w   REG  253,1       60 24642407 opened.dat

相关内容