Linuxコマンドfuser使い方と5つのオプション

Linuxコマンドfuserは、特定のファイルやディレクトリがどのプロセスによって使用されているかを確認する際に非常に便利です。この記事では、fuserコマンドとは何か、そしてさまざまなオプションを活用する方法について説明します。

fuserコマンドとは?

fuserは、ファイルまたはディレクトリに関連するプロセスを確認するために使用されるLinuxコマンドです。ファイルシステム上で、特定のファイルがどのプロセスによって使用中かを確認できます。例えば、あるプロセスがファイルをロックしているため、削除や移動ができない場合、そのプロセスを特定して終了させる方法を提供します。

fuserコマンドの基本的な使い方

最も基本的なfuserコマンドは次のように使用します。

fuser [ファイルまたはディレクトリのパス]
ShellScript

次のように、fuserコマンドでa.txtファイルを使用しているプロセスID(PID)を確認できます。

図1. Linuxコマンドfuser: ファイルを使用しているプロセスの確認
図1. Linuxコマンドfuser: ファイルを使用しているプロセスの確認

オプション説明

fuserコマンドにはさまざまなオプションがあり、より詳細な操作が可能です。よく使われるいくつかの便利なオプションを紹介します。

-kオプション: プロセスの終了

fuser -kオプションを使用すると、特定のファイルを使用中のプロセスを強制的に終了できます。このオプションは注意して使用する必要があります。なぜなら、実行中のプロセスを強制終了するため、システムやプログラムが不安定になる可能性があるからです。

fuser -k a.txt
ShellScript

このコマンドは、a.txtファイルを使用しているすべてのプロセスを終了します。実行結果はプロセス番号を表示する形で通知されます。

図2. Linuxコマンドfuser: -kオプションでプロセスを終了
図2. Linuxコマンドfuser: -kオプションでプロセスを終了

さらに、以下のようにプロセスが動作していたプロセスが終了したことを確認できます。

図3. Linuxコマンドfuser -kオプションで終了したアプリケーション
図3. Linuxコマンドfuser -kオプションで終了したアプリケーション

-iオプション: ユーザーに確認を求める

-kオプションと併用できる-iオプションは、プロセスを終了する前にユーザーに確認を求めます。誤って重要なプロセスを終了することを防ぐための良い方法です。

fuser -k -i a.txt
ShellScript

このコマンドを入力すると、各プロセスを終了する前に「Kill process xxxxx ? (y/N)」というメッセージが表示されます。

図4. Linuxコマンドfuser: -iオプションを使用してプロセス終了前に確認
図4. Linuxコマンドfuser: -iオプションを使用してプロセス終了前に確認

-vオプション: 詳細情報の表示

-vオプションは、ファイルを使用中のプロセスの詳細情報を表示します。このオプションを使用すると、プロセスIDだけでなく、そのプロセスの所有者、プロセスの状態、コマンドなどの追加情報を確認できます。

fuser -v a.txt
ShellScript

このコマンドは、a.txtファイルを使用しているすべてのプロセスに関する詳細情報を表示します。以下の図では、pythonアプリケーションがそのファイルにアクセスしていることが確認できます。

図5. Linuxコマンドfuser: -vオプションでプロセスの詳細情報を確認
図5. Linuxコマンドfuser: -vオプションでプロセスの詳細情報を確認

-uオプション: ユーザー名の表示

fuser -uオプションを使用すると、ファイルを使用中のプロセスだけでなく、そのプロセスを実行しているユーザーの名前も表示されます。

fuser -u /home/user/test.txt
ShellScript

このコマンドは、ファイルを使用しているプロセスIDに加え、そのプロセスを実行しているユーザーの名前も表示します。

図6. Linuxコマンドfuser: -uオプションでユーザー名を表示
図6. Linuxコマンドfuser: -uオプションでユーザー名を表示

-mオプション: マウントされたファイルシステムの確認

-mオプションは、ファイルシステム全体に関連するプロセスを確認する際に便利です。特定のファイルではなく、ファイルシステム全体の情報を知りたい場合に使用します。

fuser -m /dev/stdout
ShellScript

このコマンドは、以下のように/dev/stdoutを使用しているすべてのプロセスを出力します。

図7. Linuxコマンドfuser: -mオプションでマウントされたファイルシステムの確認
図7. Linuxコマンドfuser: -mオプションでマウントされたファイルシステムの確認

注意事項

fuserコマンドは強力ですが、非常に慎重に使用する必要があります。特に-kオプションを使用する際は、システムの重要なプロセスを終了しないように注意してください。プロセスを終了すると、データの損失やシステムの不安定さが発生する可能性があります。また、ルート権限が必要な場合もあるので、コマンド実行時にsudoをつけて使用する必要がある場合もあります。

sudo fuser -k /home/user/test.txt
ShellScript

まとめ

Linuxでファイルやディレクトリがどのプロセスによって使用中かを確認する際、fuserコマンドは非常に役立ちます。基本的な使い方だけでなく、さまざまなオプションを通じてプロセスの終了、ユーザー情報の確認、詳細情報の表示などが行えます。しかし、特にプロセスを強制終了する機能は慎重に使用する必要があり、システムの不安定さやデータ損失を防ぐために注意が必要です。fuserコマンドをうまく活用することで、Linuxシステム管理におけるさまざまな問題を効果的に解決できます。

リファレンス

関連ポスト

コメントする