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

推薦する

Vueカスタムディレクティブの詳細

目次1. 背景2. ローカルカスタム指示3. グローバルカスタム指示4.1 カスタムコマンドフック関...

Win 8 以降での最新の MySQL バージョン 5.7.17 (64 ビット ZIP グリーン バージョン) のインストールと展開のチュートリアル

まず、ブロガーはコミュニティ バージョンをプレイしていますが、学習とテストにはこれで十分です。 Bl...

UbuntuへのDocker CEのインストール

この記事は、Ubuntu 17.10 での Docker CE のインストールを記録するために使用さ...

v-html レンダリング コンポーネントの問題

以前 HTML を解析したことがあるので、今日は Vue ドラッグ アンド ドロップを使用して、Ku...

MySQL の where と on の違いと、いつ使用するか

以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...

VMware仮想マシンを使用してUbuntu 20.04をインストールする完全なチュートリアル

Ubuntu は比較的人気のある Linux デスクトップ システムです。最近、Ubuntu 20....

HTML ハイパーリンク タグ_Powernode Java アカデミー

HTML を学習したり使用したりしたことがある人なら、<a> タグについてよく知っている...

Windows 10 での Tomcat のインストールと展開に関する詳細なチュートリアル

目次1 Java環境の設定2 tomcatのインストールと展開Tomcat をインストールして展開す...

TypeScript マッピング型の詳細

目次1. マップされた型2. マッピング修飾子3. キーの再マッピング4. さらなる探究序文: Ty...

デカルト積原理を使用してMySQLで複数のテーブルをクエリする方法を簡単に説明します。

MySQL マルチテーブルクエリ (直積原理)まず、データが使用するテーブルを決定します。デカルト...

MySQLデータベースでサポートされているストレージエンジンの比較

目次ストレージエンジンMySQL でサポートされているストレージ エンジン同時実行制御ロック粒子をロ...

Docker イメージのプルとタグ操作 pull | tag

Fabric プロジェクトのソースコードを読み直してみたところ、Docker の部分でよくわからな...

vue3+electron12+dll 開発のためのクライアント構成の詳細な説明

目次リポジトリソースを変更する起動するvue-devtoolsを置き換える予防ボーダーレスウィンドウ...

Windows Server 2012 でファイル サーバーを構築するための詳細な手順

ファイル サーバーは、企業内で最も一般的に使用されるサーバーの一つであり、主にファイル共有を提供する...

MySQL でパーティション分割後にクエリを実装するために MRG_MyISAM (MERGE) を使用する例

大量のデータベース データを最適化することは非常に高度な科学であり、開発者が習得する必要がある専門的...