Linux

查找在沒有 lsof 或 fuser 的情況下打開文件的程序

  • July 1, 2018

我正在使用無法安裝程序且lsoforfuser命令不可用的 Linux(Scientific Linux CERN SLC 版本 6.9(Carbon))機器。

我正在嘗試刪除這台機器上的 NFS 點文件,但我不斷收到Device or resource busy錯誤消息,所以我想找出哪個程序(我懷疑它可能是我之前開始使用的程序nohup)仍然具有該文件的文件描述符。

我怎樣才能做到這一點?

使用/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 ~]#

引用自:https://unix.stackexchange.com/questions/452881