查找未使用 lsof 或 fusionr 打开文件的进程

查找未使用 lsof 或 fusionr 打开文件的进程

我正在一台 Linux(Scientific Linux CERN SLC 版本 6.9(Carbon))机器上工作,我无法在该机器上安装程序,并且lsoffuser命令不可用。

我正在尝试删除这台计算机上的 NFS 点文件,但我不断收到错误Device or resource busy,因此我想找出哪个进程(我怀疑它可能是我之前启动的进程nohup)仍然具有该文件的文件描述符。

我怎样才能实现这个目标?

答案1

使用/proc/<PID>/fd

示例....我们想要找出哪个 pid 已/var/log/audit/audit.log打开。 fuser告诉我们它的 pid 255。

[root@instance-1 ~]# fuser /var/log/audit/audit.log
/var/log/audit/audit.log:   255
[root@instance-1 ~]#

所以使用非fuser解决方案:

[root@instance-1 ~]# find /proc/*/fd -ls|grep /var/log/audit/audit.log
188652    0 l-wx------   1 root     root           64 Jul  1 06:22 /proc/255/fd/5 -> /var/log/audit/audit.log
[root@instance-1 ~]#

相关内容