我在使用 Linux 4.0.4 计算机时偶尔会遇到“文本文件繁忙”错误。我了解到,当错误发生时,内核正在阻止对正在“使用”的文件进行修改。
因此,我确保文件已打开(如 lsof 中列出),然后对其进行修改,一切都很好,并且不会发生“文本文件忙”错误。
那么如何触发错误呢?
答案1
“文本文件忙”意味着进程正在尝试修改运行时的可执行文件(“文本”是关于段.text
,而不是文本文件)。要触发它:
$ cp /usr/bin/yes .
$ ./yes >/dev/null &
[1] 27417
$ cat /dev/null >yes
-bash: yes: Text file busy
$ kill %1
[1]+ Terminated ./yes > /dev/null
$ cat /dev/null >yes
$ ls -s yes
0 yes