LinuxのFuserコマンドの使い方を教えてください。

イントロダクション

fuserコマンドは、特定のファイル、ディレクトリ、またはソケットを使用しているプロセスを特定するために設計されたLinuxユーティリティです。また、そのプロセスを実行している所有ユーザーとアクセスの種類に関する情報も提供します。

fuserユーティリティの使い方

ファイザーマニュアルのページを確認すると、ファイザーと一緒に使用することができるすべてのオプションの概要がわかります。また、オプションを使用せずにファイザー自体を実行すると、ファイザーの構文の概要が表示されます。

  1. fuser

 

Output

No process specification given Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME… fuser -l fuser -V Show which processes use the named files, sockets, or filesystems. -a,–all display unused files too -i,–interactive ask before killing (ignored without -k) -k,–kill kill processes accessing the named file -l,–list-signals list available signal names -m,–mount show all processes using the named filesystems or block device -M,–ismountpoint fulfill request only if NAME is a mount point -n,–namespace SPACE search in this name space (file, udp, or tcp) -s,–silent silent operation -SIGNAL send this signal instead of SIGKILL -u,–user display user IDs -v,–verbose verbose output -w,–writeonly kill only processes with write access -V,–version display version information -4,–ipv4 search IPv4 sockets only -6,–ipv6 search IPv6 sockets only – reset options udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

ディレクトリ内で実行中のプロセスを表示する方法

-fオプションを使用してfuserを実行することもできます。これにより、ユーザーはfuserが行っている処理を観察するために、より多くの出力を生成することができます。現在のディレクトリ(.)で、-vオプションを含めてfuserを実行してください。

  1. fuser -v .

 

Output

USER PID ACCESS COMMAND /home/sammy: sammy 17604 ..c.. bash

この場合、このディレクトリで実行されているのは、現在コマンドを実行している対話型のbashシェルだけです。

ユーザーが冗長モードでfuserユーティリティを実行すると、プロセスのユーザー、PID、アクセス、およびコマンドに関する情報が表示されます。アクセスの「c」という文字は、この場合には現在のディレクトリを示しています。実行中の他のアクセスタイプには、実行中の実行可能ファイル、ルートディレクトリ、オープンファイル、マップされたファイルまたは共有ライブラリなどがあります。

ネットワークソケットを使用しているプロセスを見つける方法

TCPおよびUDPソケットを使用したプロセスの調査も必要になるかもしれません。この例をデモンストレーションするために、まずncを使用してポート8002でTCPリスナーを作成し、実行中のプロセスを観察できるようにします。

  1. nc -l -p 8002

 

これは実行中である限りターミナルをブロックします。別のターミナルウィンドウで、fuserコマンドを使用してTCPポート8002で実行しているプロセスを-nオプションと共に検索してください。

  1. fuser -v -n tcp 8002

 

Output

USER PID ACCESS COMMAND 8002/tcp: sammy 17985 F…. nc

Note

注意:デフォルトでは、fuserツールはIPv4とIPv6のソケットの両方をチェックしますが、-4オプションおよび-6オプションを使用してそれぞれIPv4のみまたはIPv6のみの接続をチェックすることができます。

この出力は、netcatを使用しているプロセスのプロセスID(PID)が17985であり、それを起動するために使用されたコマンドは「nc」であることを示しています。プロセスID(PID)は、実行中のプロセスを停止または終了するためを含め、さまざまな方法で使用することができます。Linuxでプロセスを管理するために、ps、kill、niceの使用方法について詳しく学ぶことができます。また、特定のポートで実行されているプロセスを終了するために、fuser自体を-kフラグを使用して利用することもできます。

  1. fuser -k 8002/tcp

 

Output

8002/tcp: 18056

最初のターミナルウィンドウに戻ると、ncプログラムが終了してシェルに戻ったことがわかります。

fuserユーティリティには、特定のプロセスにシグナルを送信するためにも使用することができます。-kオプションとともに使用すると、fuserコマンドはプロセスにKILLシグナルを送信します。実行中の特定のプロセスに送信できる他のシグナルもたくさんあります。これらはfuser -lでリストできます。

  1. fuser -l

 

Output

HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

結論

この記事では、fuserを使用してLinuxシステム上の使用中のポートやディレクトリを監視するいくつかの使用例を学びました。fuserは、自分のシステムで実行されている不明なプロセスを理解しようとしている場合に特に役立ちます。

次に、他のサーバーリソースを監視するために、netstatやduの使い方を学ぶことをお勧めします。

コメントを残す 0

Your email address will not be published. Required fields are marked *