Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
fuser - ファイルやソケットを使用しているプロセスを特定する
書式
fuser [-a|-s] [-n space] [-signal] [-kimuv] name ... [-] [-n space] [-signal] [-kimuv] name ... fuser -l fuser -V
説明
fuser は,引数としてわたされたファイルやファイルシステムを使用しているプロ セスの PID を表 示する。デフォルトの表示モードでは、それぞ れのファイル名の後に、アクセスの形式を示す以下 の文字が表示される: c カレントディレクトリ。 e 実行中のファイル。 f オープンしているファイル。 f はデフォルトの表示モードで は省略される。 r ルートディレクトリ。 m mmap されたファイルか共有ライブラリ。 引数としてわたされたファイルが一つもアクセスされていないときや、致命的 なエラーが発生した 場合には、 fuser は 0 以外の値を返す。引数とし て指定したファイルがどれかひとつでもアクセ スされていれば、 fuser はゼロを返す。 TCP と UDP のソケットを使用しているプロセスを探す場合には、名前空間を -n オプションによっ て選択しなければならない。このオプションを用 いれば、ソケットはローカルとリモートのポー ト、およびリモートのアドレス によって指定できる (複数のソケットを指定することもできる)。す べてのフィー ルドは省略可能であるが、省略したフィールドの前にはコンマを置かなければ ならな い。 [lcl_port][,[rmt_host][,[rmt_port]]] IP アドレスにもポート番号にも、シンボルによる記述と数値による記述の両 方が可能である。
オプション
-a コマンドラインで渡されたすべてのファイルを表示する。デフォルトでは、一 つ以上のプロ セスからアクセスされているファイルのみが表示される。 -k 指定したファイルにアクセスしているプロセスを kill する。 -signal で変更しなければ SIGKILL が送られる。 fuser プロセスは自分自身を kill することはできないが、他の fuser プロ セスを kill することはできる。 fuser を実行しているプロセスの実 効ユー ザー ID は、 kill を行う前に、その実ユーザー ID にセットされる。 -i プロセスを kill する前にユーザーに確認する。 このオプションは、-k オプションが指定 されていない時には無視される。 -l 使用できる signal すべてをリストアップする。 -m filename には、マウントされたファイルシステム上のファイルか、マウ ントされたブロッ クデバイスを指定する。そのファイルシステム上のファイル にアクセスしているすべてのプ ロセスが表示される。ディレクトリファイルが 指定されると、それは自動的に name/. に変 換され、そのディレクトリ にマウントされているファイルシステムが用いられるようにな る。 -n space 別の名前空間を選択する。サポートされている名前空間は、 file (ファ イル名。これがデ フォルト), udp (ローカルの UDP ポート), tcp (ローカルの TCP ポート) である。ポート の指定には、ポート番号 とシンボル名の両方が使える。重複がなければ、省略記法 name/space (例えば name/proto) を用いることも できる。 -s 表示を抑制する。 -u, -v はこのモードでは無視される。 -a オプションは -s オプション と同時に使ってはならない。 -signal プロセスを kill する時に、 SIGKILL 以外のシグナルを指定する。シグナル の指定は名前 (例: -HUP) 数字 (例: -1) のどちらでも良い。 -u それぞれの PID にプロセスの所有者名を追加する。 -v 饒舌 (verbose) モード。プロセスは ps のような形式で表示される。 PID, USER, COMMAND の各フィールドは,ps と同じような内容である。 ACCESS は、プロセスがどのようにファイ ルへアクセスしているかを示す。 アクセスがカーネルによって行われている場合 (たとえば マウントポイントや スワップファイルなど) には、 PID の代わりに kernel と表示され る。 -V バージョン情報を表示する。 - すべてのオプションをリセットし、送るシグナルを SIGKILL にセットする。
ファイル
/proc location of the proc file system /proc proc ファイルシステムの場所
例
fuser -km /home は、 /home ファイルシステムにアクセスしている すべてのプロセスを kill す る。 if fuser -s /dev/ttyS1; then :; else something; fi は、 他のプロセスが /dev/ttyS1 を使って いない場合に限って something を実行する。 fuser telnet/tcp は、(ローカルの) TELNET ポートにアクセスしている すべてのプロセスを表示す る。
制限
同一のファイルや同一のファイルシステムに、同じ方法で複数アクセスしている プロセス群は、一 つだけ表示される。 同一のオブジェクトがコマンドラインで二回以上指定されても、 それらのエントリは無視される。 ルート権限で実行しない限り、 fuser が得ることのできる情報は 部分的なものである。したがっ て、他のユーザーのプロセスによってオープンされた ファイルは表示されないし、実行ファイルは mapped に分類されるだけになるだろう。 情報が部分的にしか得られないことによって生じるこの問題は、 fuser を root に SUID してイン ストールすれば避けることができるだろう。 しかしこの方法は、セキュリティやプライバシーの理 由から望まれないことが 多いだろう。 udp と tcp の名前空間と UNIX ドメインソケットは、 1.3.78 より古いカーネルでは見つけること ができない。 udp と tcp は、現在のところ IPv4 でしか動作しない。 カーネルによるアクセスは -v オプションをつけないと表示されない。 -k オプションはプロセスにしか有効でない。ユーザーが kernel の 場合、 fuser はそれなりの助 言を表示するだろうが、それ以上の 動作は行わない。
著者
Werner Almesberger <Werner.Almesberger@epfl.ch>
関連項目
kill(1), killall(1), ps(1), kill(2)