我尝试使用rm -rf file_name
删除Linux中的文件,但得到了错误:
rm: file_name not removed. Text file busy
rm: file_name not removed. Text file busy
。
我怎样才能找出哪个进程正在使用这个文件?
您可以使用fuser
命令,如:
fuser file_name
您将收到使用该文件的进程列表。
您可以使用不同的标志,以获得更详细的输出。
您可以在fuser的维基百科文章或man
页中找到更多信息。
@吉姆的答案是正确的 – fuser
是你想要的。
另外(或者也可以),您可以使用lsof
来获取更多的信息,包括用户名,以防万一您需要权限(无需运行额外的命令)来终止进程。 (当然,如果要杀死进程是你想要的, fuser
可以用-k
选项来做到这一点,你可以使用-s
选项来使用其他信号 – 请查看手册页的细节。)
例如,在一个窗口中运行tail -F /etc/passwd
:
ghoti@pc:~$ lsof | grep passwd tail 12470 ghoti 3r REG 251,0 2037 51515911 /etc/passwd
请注意,您也可以使用lsof
来找出使用特定套接字的进程。 一个很好的工具,在你的武库。