fuser コマンド
目的
ファイルまたはファイル構造を使ってプロセスを識別します。
構文
フューザー [[「-c」 | -C | 「-f」 ] [-x (X) ] |-d 年 ] [ -k (K) | -K { シグナル番号 | シグナル名 }] [ -ウー ] [ V 値 ]ファイル ...
説明
fuser コマンドは、File パラメーターで指定されたローカルまたはリモート・ファイルを使用しているローカル・プロセスのプロセス番号を表示します。 ブロック特殊デバイスの場合は、コマンドがデバイス上のいずれかのファイルを使用するプロセスを表示します。
個々のプロセス番号の後には、そのプロセスのファイルの使い方を示す次のような文字が付けられます。
| 項目 | 説明 |
|---|---|
| C | ファイルを現行ディレクトリーとして使用します。 |
| e | ファイルをプログラムの実行可能なオブジェクトとして使用します。 |
| r | ファイルをルート・ディレクトリーとして使用します。 |
| s | ファイルを共有ライブラリー (またはその他のロード可能なオブジェクト) として使用します。 |
プロセス番号は、各プロセス番号の間にスペースを挿入して 1 行で標準出力に書き出されます。 それぞれのファイル・オペランドごとに、改行文字が最後の出力の後で標準エラーに書き込まれます。 その他の出力はすべて標準エラーに書き込まれます。
fuser コマンドは、 関連ファイル・ディスクリプターがクローズされた mmap 領域を持つプロセスは検出しません。 また、FIFO (名前付きパイプ) を使用するプロセスは、FIFO が完全にオープンするまで検出されません。 例えば、オープン・システム呼び出しの完了を待っているプロセスは、fuser コマンドでは認識されません。
fuser コマンドは、ファイルシステムを使用しているプロセスを決定するのに使用します。 このファイルシステムがネットワーク・ファイルシステム (NFS) であり、NFS サーバーが応答していない場合、fuser コマンドがハングすることがあります。 この状態を回避するため、FUSER_VERSION 環境変数を 1 に設定することができます。
フラグ
| 項目 | 説明 |
|---|---|
| -c | File が入っているファイルシステム内のすべてのオープン・ファイルについて報告します。 |
| -C | File パラメーターが指定するディレクトリーにマウントされたファイルシステム内にオープン・ファイルがあれば、それらのすべてのファイルについて報告します。 File パラメーターがマウント・ポイントではない場合、コマンドはエラーを報告します。 |
| -d | File を含むファイルシステムからリンク解除された (削除された) すべてのオープン・ファイル について報告します。 -V フラグと一緒に使用された場合は、削除されたファイルの i ノード番号とサイズも報告します。 |
| -f | File のオープン・インスタンスについてのみ報告します。 |
| -K SignalNumber | SignalName | 指定のシグナルを各ローカル・プロセスに送信します。 root ユーザーのみが他のユーザーのプロセスを強制終了できます。 シグナルは、SIGKILLシグナルのKILLのような「シグナル名、または9のような「シグナル番号」として指定することができる。 SignalNameの有効な値は、「kill -lコマンドで表示される値である。 |
| -k | SIGKILL シグナルを各ローカル・プロセスに送信します。 root ユーザーのみが他のユーザーのプロセスを強制終了できます。 注: fuser -k または -K は、プログラムの実行開始直後に作成された新規プロセスを検出して強制終了することができない場合があります。
|
| -u | プロセス番号の後に括弧付きでローカル・プロセス番号のログイン名を提供します。 |
| -V | 詳細出力を提供します。 |
| -x | -c または -f と一緒に使用された場合は、 標準の fuser 出力に加えて、実行可能で、かつ、ロード可能なオブジェクトを報告します。 |
セキュリティー
例
- /etc/passwd ファイルを使用している、
ローカル・プロセスのプロセス番号を表示するには、次のように入力します。
fuser /etc/passwd - /etc/filesystems ファイルを使用しているプロセスのプロセス番号とユーザー・ログイン名を表示するには、次のように入力します。
fuser -u /etc/filesystems - 所定のファイルシステムを使用しているすべてのプロセスを停止するには、
次のように入力します。
またはfuser -k -x -u -c /dev/hd1fuser -kxuc /homeいずれのコマンドもプロセス番号とユーザー名をリストした後、/dev/hd1 (/home) ファイルシステムを使用しているプロセスを停止します。 root ユーザーのみが他のユーザーに属するプロセスを停止できます。 /dev/hd1 ファイルシステムを アンマウントしようとしていて、/dev/hd1 ファイルシステムにアクセスしているプロセスがこれを阻止するのであれば、このコマンドを使用します。
- あるファイルシステムから削除されたファイルを使用している、
すべてのプロセスを表示するには、次のように入力します。
fuser -d /usr
ファイル
| 項目 | 説明 |
|---|---|
| /dev/kmem | システム・イメージに使用されます。 |
| /dev/mem | 同じく、システム・イメージに使用されます。 |