Linuxでrm -rf file_name
を使用してファイルを削除しようとしましたが、エラーが発生しました。
rm: file_name not removed. Text file busy
このファイルを使用しているプロセスを確認するにはどうすればよいですか?
次のようにfuser
コマンドを使用できます。
fuser file_name
ファイルを使用してプロセスのリストを受け取ります。
より詳細な出力を受け取るために、異なるフラグを使用できます。
詳細は fuserのWikipediaの記事 、またはman
ページで見つけることができます。
@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
を使用して、特定のソケットを使用しているプロセスを確認することもできます。あなたの武器庫に持つ優れたツール。