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 を使用してカルーセル効果を実装する

推薦する

CSS 水平プログレスバーと垂直プログレスバーの実装コード

時々、素敵なスクロールバー効果を見るのは楽しいものです。ここでは、CSSを使用してそれを実現する方法...

MySQLクエリ構文の概要

序文:この記事では主に、MySQL の where、group by、order by、limit、...

MySQL 8.0.20 Window10無料インストール版設定とNavicat管理チュートリアルグラフィック詳細説明

1. MySQL 8.0.20をダウンロードして解凍するダウンロードリンク: https://dev...

vmware workstation12 インストール CentOS プロンプト VMware Player と Device/Credential Guard に互換性がない、理由と解決策

最新バージョンの WIN10 では、Microsoft は仮想化コンテナに基づくセキュリティ メカニ...

LinuxでのDNSサーバーの設定の詳細な説明

1. DNSサーバーの概念インターネットでの通信には IP アドレスの助けが必要ですが、数字に対する...

Docker Composeでコンテナ管理の問題を解決する

Docker の設計では、コンテナは 1 つのアプリケーションのみを実行します。しかし、現在のアプリ...

nginx proxy_cache キャッシュ設定の詳細な説明

序文:私は仕事柄、オンラインライブストリーミングの分野に携わっており、ビデオの再生やダウンロードには...

Dockerボリュームのファイルマッピング方法

背景ブロックチェーン ログ モジュールで作業しているときに、コンテナーが実行されている場合は、ログ ...

MySQL のインストール方法と設定に関するいくつかの問題の概要

1. MySQL rpm パッケージのインストール # インストールソースをダウンロードします [r...

MySQL InnoDB のロック機構の詳細な説明

前面に書かれたデータベースは本質的に共有リソースであるため、同時アクセスのパフォーマンスを最大化する...

dockerでredis5.0.3をインストールする方法

1. 公式5.0.3イメージを取得する [root@localhost ~]# docker pul...

MySQL 永続統計の詳細な説明

1. 永続的な統計情報の重要性:統計は、MySQL が実行プランを生成するためのガイドとして使用され...

要素テーブルテーブルコンポーネントの複数フィールド(複数列)ソート方法

目次必要:発生した問題:解決する:必要:要素テーブル内の複数の列を並べ替えるには、日付の並べ替えをク...

すべてのブラウザとの完全な互換性を実現するために最適なプリセットを選択してください

各ブラウザの select タグのプロパティと各ブラウザのサポートが多少異なるため、各ブラウザでの選...

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整...