Provided by: manpages-ja_0.5.0.0.20131015+dfsg-2_all ![bug](/img/bug.png)
![bug](/img/bug.png)
名前
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)