如何故意触发“文本文件忙”错误?

如何故意触发“文本文件忙”错误?

我在使用 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

相关内容