在一次会话中,我将一些文本附加到文件中,如下所示:
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