LinuxシステムでFuserコマンドを使用する方法

LinuxシステムでFuserコマンドを使用する方法

Fuser コマンドとは何ですか?

fuser コマンドは、特定のファイル、ディレクトリ、またはソケットを使用しているプロセスを見つけるための非常に優れた Unix ユーティリティです。 また、プロセスを所有するユーザーとアクセス タイプに関する情報も提供します。 。 fuser ツールは、指定されたファイルまたはファイル システムを使用している各プロセスのプロセス ID (PID) を表示します。

インストール

簡易バージョンで fuser を実行すると、次のメッセージが表示されます。

-bash: fuser: コマンドが見つかりません

インストールするには、次のコマンドを実行してください。

[winbert@winbert-server ~]$ sudo yum -y psmiscをインストールします

fuser コマンドの使い方は?

man コマンドを使用すると、任意のコマンドのヘルプ マニュアルを表示できますが、特に Linux コマンドなど、新しいことを学ぶ最良の方法は、実際の例を読み、ターミナルにコマンドを継続的に入力することです。 fuser ユーティリティの使用オプションに関する情報を取得するには、ターミナルで次のコマンドを実行します。

[winbert@winbert-server ~]$ フューザー
プロセス仕様が指定されていません
使用法: fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...
  フューザー-l
  フューザー-V
指定されたファイル、ソケット、またはファイルシステムを使用するプロセスを表示します。

 -a, --all 未使用のファイルも表示します
 -i, --interactive 強制終了する前に確認する (-k なしでは無視されます)
 -k, --kill 指定されたファイルにアクセスしているプロセスを強制終了します
 -l, --list-signals 利用可能なシグナル名をリストします
 -m, --mount は指定されたファイルシステムまたはブロックデバイスを使用しているすべてのプロセスを表示します
 -M, --ismountpoint NAME がマウントポイントの場合にのみ要求を満たす
 -n,--namespace SPACE この名前空間で検索 (ファイル、udp、または tcp)
 -s, --silent サイレント操作
 -SIGNAL SIGKILLの代わりにこのシグナルを送信します
 -u, --user ユーザーIDを表示
 -v, --verbose 詳細出力
 -w,--writeonly 書き込み権限を持つプロセスのみを強制終了します
 -V, --version バージョン情報を表示する
 -4, --ipv4 IPv4ソケットのみ検索
 -6, --ipv6 IPv6ソケットのみ検索
 - オプションをリセット

 udp/tcp 名: [local_port][,[rmt_host][,[rmt_port]]]

ディレクトリを使用してプロセスを表示する方法

fuser プログラムは-vオプションとともに使用でき、これによりツールが詳細モードで実行されます。詳細オプションは、コンピュータ画面に詳細な出力を生成するために使用され、ユーザーはユーティリティが何を実行しているかをリアルタイムで確認できます。

[winbert@winbert-server ~]$ fuser -v .
      ユーザー PID アクセス コマンド
/home/winbert: winbert 1435 ..c.. bash

上記の出力は、詳細モードで実行された場合、 fuser がUSERPIDACCESS 、およびCOMMANDに関する情報を提供することを示しています。 ACCESSの下のc文字はアクセス タイプを示し、「現在のディレクトリ」を意味します。 アクセス タイプには、e (実行可能ファイル)、r (ルート ディレクトリ)、f (ファイルを開く。デフォルトの表示モードでは f は省略されます)、F (書き込み用にファイルを開く。デフォルトの表示モードでは F は省略されます)、m (ファイルまたは共有ライブラリを mmap する) など、さまざまなものがあります。

TCP または UDP ソケットを使用しているプロセスを確認しますか?

場合によっては、TCP および UDP ソケットを使用するプロセスを見つける必要があります。 これらのプロセスを見つけるには、 -nオプションを使用します。 -nオプションは、対応する名前空間を選択するために使用されます。

[root@huidukongjian-h4 docker]# fuser -v -n tcp 80
      ユーザー PID アクセス コマンド
80/tcp: ルート 27411 F....docker-proxy

デフォルトでは、fuser は IPv6 ソケットと IPv4 ソケットの両方を検索しますが、 -4および-6オプションを使用してデフォルトを変更できます。 -4オプションはIPv4を表し、 -6オプションはIPv6を表します。 fuser PID のみを stdout に出力し、その他はすべて stderr に送信されることに注意してください。

fuser -v -n tcp 80コマンドの結果から、 dockerを使用するプロセスのプロセス ID が 27411 であり、プロセスを開始するために使用されたコマンドがdocker-proxyであることがわかります。 プロセス ID (PID) はさまざまな方法で使用できますが、その 1 つはプロセスの終了です。 PID と共に使用すると、kill コマンドはそのプロセス ID に基づいてプロセスを強制終了します。 fuser 、特定のファイルにアクセスするプロセスを強制終了するためにも使用できます。 次のコマンドでは、 -kオプションを使用して、ポート123で実行されているtcpリスナーを使用しているプロセスを強制終了します。ユーザーが間違ったプロセスを強制終了しないようにするには、 -iオプションを使用して、プロセスを終了する前にユーザーに確認を求めます。

フューザー -k 123/tcp

プロセスを終了する前にユーザーに確認を求めるには、 -iオプションを指定したfuser -kコマンドを使用します。 ユーザーは、 yで応答して「はい」と答えるか、 N応答してプロセスを終了しないようにすることができます。

フューザー -i -k 123/tcp
123/TCP: 12216
プロセス 12216 を終了しますか? (y/N)
IPv6 ソケットを検索するには -6 オプションを使用します。

次のコマンドは、fuser を詳細モードで使用し、ポート 123 で実行されている IPv6 ソケットを見つけようとします。

フューザー -v -n tcp -6 123

特定のファイルシステムを占有しているプロセスを見つける

-mオプションをfuserコマンドで使用すると、ファイル システム上のファイルにアクセスしているプロセスを見つけることができます。 このオプションには、入力引数としてファイル名が必要です。 -mオプションは、特にファイル システムにアクセスしているプロセスを検出し、強制終了するプロセスを識別する場合に使用すると非常に便利です。

次のコマンドは、「example.txt」が配置されているファイル システムにアクセスしているすべてのプロセスを表示します。 fuser-mオプションがどのように機能するかを注意深く確認してください。

[root@huidukongjian-h4 docker]# fuser -v -m data/v2/config.json 
      ユーザー PID アクセス コマンド
設定ファイルは次の通りです:
      ルートカーネルマウント /
      ルート 1 .rce.systemd
      ルート 2 .rc.. kthreadd
      ルート 3.rc..rcu_gp
      ルート 4 .rc.. rcu_par_gp
      ルート 6 .rc.. kworker/0:0H-kbl
      ルート 8 .rc.. mm_percpu_wq
      ルート 9 .rc.. ksoftirqd/0
      ルート 10 .rc.. rcu_sched
      ルート 11 .rc.. 移行/0
      ルート 12 .rc.. ウォッチドッグ/0
      ルート 13 .rc.. cpuhp/0
      ルート 16 .rc.. netns
      ルート 17 .rc.. kauditd
      ルート 18 .rc.. khungtaskd
      ルート 19 .rc..oom_reaper
      ルート 20 .rc..writeback
      ルート 21 .rc.. kcompactd0
      ルート 22.rc..ksmd
      ルート 23.rc..khugepaged
      ルート 24 .rc.. 暗号
      ルート 25 .rc..kintegrityd
      ルート 26.rc..kblockd
      ルート 27 .rc.. tpm_dev_wq
      ルート 28 .rc..md
      ルート 29 .rc.. edac-poller
      ルート 30 .rc.. ウォッチドッグ
      ルート 42 .rc.. kswapd0
      ルート 93 .rc.. kthrotld
      ルート 94 .rc.. acpi_thermal_pm
      ルート 95 .rc.. kmpath_rdacd
      ルート 96 .rc.. カルアド
      ルート 97 .rc.. ipv6_addrconf
      ルート 98 .rc.. kstrp
      ルート 326 .rc.. scsi_eh_0
      ルート 327 .rc.. scsi_tmf_0
      ルート 329 .rc.. kworker/0:1H-kbl
      ルート 361 .rc.. ata_sff
      ルート 363 .rc.. scsi_eh_1
      ルート 365 .rc..scsi_tmf_1
      ルート 366 .rc.. scsi_eh_2
      ルート 367 .rc..scsi_tmf_2
      ルート 387 .rc..xfsalloc
      ルート 390 .rc.. xfs_mru_cache
      ルート 391 .rc.. xfs-buf/vda1
      ルート 394 .rc.. xfs-data/vda1
      ルート 395 .rc.. xfs-conv/vda1
      ルート 396 .rc.. xfs-cil/vda1
      ルート 397 .rc.. xfs-reclaim/vda
      ルート 398 .rc.. xfs-log/vda1
      ルート 399 .rc.. xfs-eofblocks/v
      ルート 400 .rc.. xfsaild/vda1
      ルート 486 .rce. systemd-journal
      rpc 541 .rce. rpcbind
      ルート 543 Frce.auditd
      ルート 545 .rce. sedispatch
      ルート 558 .rc.. rpciod
      ルート 559 .rc.. kworker/u3:0
      ルート 561 .rc..xprtiod
      ルート 582 Frce.sssd
      polkitd 585 .rce. polkitd
      ルート 589 .rce.rngd
      dbus 593 frce。dbusデーモン
      クロニ 612 .rce. クロニド
      ルート 652 Frce.sssd_be
      ルート 668 Frce.sssd_nss
      ルート 671 .rc.. ttm_swap
      ルート 672 .rc..nfit
      ルート 675 frce。systemd-logind
      ルート 683 Frce.gssproxy
      ルート 740 frce.NetworkManager
      ルート743 フランス語 調整済み
      ルート 814 frce。systemd-udevd
      ルート 889 frce.sshd
      ルート 890 フリー rsyslogd
      ルート 895 frce.agetty
      ルート 898 frce. crond
      ルート 899 frce.agetty
      ルート 21821 .rc.. kworker/u2:0-flu
      ルート 25475 frce.sshd
      ルート 25480 .rce.systemd
      ルート 25485 frce。(sd-pam
      ルート 25491 frce.sshd
      ルート 25492 frce.bash
      ルート 25705 Frce.containerd
      ルート 25706 Frce.dockerd
      ルート 26375 .rc.. kworker/u2:1-eve
      ルート 27251 フリーコンテナd-shim
      ルート 27267 F...m v2
      ルート 27273 フリーコンテナd-shim
      ルート 27295 ....m sh
      ルート 27400 .rce.docker-proxy
      ルート 27411 .rce.docker-proxy
      ルート 27416 フリーコンテナd-shim
      ルート 27432 ....m sh
      ルート 27478 ....m sh
      ルート 27479 F...m nginx
      ルート 27480 ....m スリープ
      (不明) 27481 F...m nginx
      ルート 27561 ....m スリープ
      ルート 27705 .rc.. kworker/0:0-xfs-
      ルート 27765 .rc.. kworker/0:1-xfs-
      ルート 27836 .rc.. kworker/0:2-even
      ルート 27860 frce.sshd
      ルート 27883 frce.sshd
      sshd 27884 frce.sshd

fuserプロセスに特定の指示を送信するためにも使用できます。 -kオプションと一緒に使用すると、 fuserコマンドはプロセスにKILL命令を送信します。 実行中のプロセスに送信できるコマンドは多数あります。 -lオプションは、fuser で使用できるコマンドのリストを見つけるのに役立ちます。

[root@huidukongjian-h4 docker]# fuser -l
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

要約する

Linux システムで Fuser コマンドを使用する方法については、これで終わりです。Linux fuser コマンドに関するより詳しい内容については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux での fuser コマンドの使用法の詳細な説明

<<:  MySQL テーブルデータのインポートとエクスポートの例

>>:  JavaScript を使用してカルーセル効果を実装する

推薦する

MySQLテーブルシャーディングとパーティショニングの具体的な実装方法

縦型テーブル垂直テーブル分割とは、多数の列を持つテーブルを複数のテーブルに分割することを意味します。...

js 加算、減算、乗算、除算の正確な計算方法のサンプルコード

序文コンピュータの数値は浮動小数点であるため、計算プロセス中に取得されるデータは通常正確ではなく、そ...

ドロップダウンボックス選択コンポーネントを実装するためのネイティブ js

この記事の例では、ドロップダウンボックス選択コンポーネントを実装するためのjsの具体的なコードを参考...

CSS でハートを描く 3 つの方法

以下では、CSS を使用してハートの形を描く 3 つの方法を紹介します。実装プロセスは非常にシンプル...

MySQL トリガーの基本的な使い方(作成、表示、削除など)の詳細な説明

目次1. MySQLトリガーの作成: 1. MySQLトリガー作成構文: 2. MySQL作成構文の...

フォームのmethod=post/getの違い

フォームは、get と post の 2 つのデータ転送方法を提供します。どちらもデータを送信する方...

MySQL 独立インデックスと共同インデックスの選択

複数列のインデックスについては、理解が不足していることがよくあります。よくある間違いは、多数の列に独...

Linuxプロセスネットワークトラフィック統計の実装プロセス

序文Linux には、ネットワーク接続、プロセス、およびその他の情報をリアルタイムで収集するための対...

jQueryはHTML要素の非表示と表示を実装します

商品を検索するときに、すべてのブランドまたは一部のブランドを表示するTaobaoの機能を真似してみま...

Docker で複数のアプリケーション サイトをプロキシするために Nginx を使用する方法

序文エージェントの役割は何ですか? - 複数のドメイン名が同じサーバーに解決される- 1つのサーバー...

Firefox または IE でスパン幅が決定されない場合の解決策

コードをコピーコードは次のとおりです。 <html xmlns="http://ww...

年末ですが、MySQL パスワードは安全ですか?

序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...

Linuxで同一ファイルを見つける方法

コンピュータを使用すると、システム内に大量のゴミが生成されます。最も一般的なケースは、同じファイルが...

Linux で MySQL 5.6 X64 バージョンをインストールする詳細な手順

環境: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-glibc2.5...