web-dev-qa-db-ja.com

lsofまたはfuserなしでファイルを開いているプロセスを検索します

プログラムをインストールできず、lsofまたはfuserコマンドを使用できないLinux(Scientific Linux CERN SLCリリース6.9(Carbon))マシンで作業しています。

このマシンでNFSドットファイルを削除しようとしていますが、Device or resource busyエラーが発生し続けるので、どのプロセス(以前にNohupで開始したプロセスである可能性があります)にまだこのファイルへのファイル記述子。

どうすればこれを達成できますか?

3
Peter

/proc/<PID>/fdを使用します。

例....どのpidが/var/log/audit/audit.logを開いているかを調べたいと思います。 fuserは、pid255であることを示しています。

[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 ~]#
6
steve