web-dev-qa-db-ja.com

Linuxでファイルを使用しているプロセスを確認するにはどうすればよいですか?

Linuxでrm -rf file_nameを使用してファイルを削除しようとしましたが、エラーが発生しました。

rm: file_name not removed.  Text file busy

このファイルを使用しているプロセスを確認するにはどうすればよいですか?

68
khris

次のようにfuserコマンドを使用できます。

fuser file_name

ファイルを使用してプロセスのリストを受け取ります。

より詳細な出力を受け取るために、異なるフラグを使用できます。

詳細は fuserのWikipediaの記事 、またはmanページで見つけることができます。

101
jimm-cl

@jimの答えは正しいです-fuserはあなたが望むものです。

さらに(または代わりに)プロセスを強制終了するためのアクセス許可(追加のコマンドを実行する必要なし)が必要な場合は、lsofを使用してユーザー名を含む詳細情報を取得できます。 (もちろん、プロセスを強制終了したい場合は、fuser-kオプションを使用できます。fuser-sオプションを使用して他のシグナルを使用できます。詳細については、manページを確認してください。)

たとえば、1つのウィンドウでtail -F /etc/passwdが実行されている場合:

ghoti@pc:~$ lsof | grep passwd
tail      12470    ghoti    3r      REG  251,0     2037 51515911 /etc/passwd

lsofを使用して、特定のソケットを使用しているプロセスを確認することもできます。あなたの武器庫に持つ優れたツール。

24
ghoti