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 はクリックフリップ効果を実現します

参考までに、vueを使用してクリックフリップエフェクトを簡単に実装します。具体的な内容は次のとおりで...

MySql 認証に基づく vsftpd 仮想ユーザー

目次1. MySQLのインストール1.2 テーブル、データベース、ユーザーを作成する1.3 リモート...

Mysql は null 値の first/last メソッドの例を実装します

序文MySQL が SQL SELECT コマンドと WHERE 句を使用してテーブルからデータを読...

Vueフォームバインディングとコンポーネントの詳細な説明

目次1. 双方向データバインディングとは1. データの双方向バインディングを実装する必要があるのはな...

Tomcat で複数の war パッケージを展開する方法と手順

1 背景JDK1.8-u181とTomcat8.5.53がインストールされました。インストール後、環...

Alibaba Cloud Centos 7.5 に MySQL をインストールするチュートリアル

CentOS 7 の yum ソースには、MySQL を正常にインストールするための mysql-s...

リクエスト IP の最後のセグメントに基づいてトラフィックを分割するように Nginx を構成する方法

これは主に、場所パラメータのif判断の設定ジャンプです。迂回により、サーバーの負荷と圧力を軽減できま...

Vue 開発ガイドの重要な知識の要約

目次概要0. JavaScriptとWeb開発の基礎1. Vueの基本概念Vue コア機能コンポーネ...

CSS と JavaScript を使用して管理ダッシュボードのレイアウトを構築するためのサンプル コード

あなたが作成するものこの新しいチュートリアルでは、CSS と JavaScript を使用して、レス...

MySQLデータベースの基礎知識と操作のまとめ

この記事では、例を使用して、MySQL データベースの基本的な知識と操作について説明します。ご参考ま...

Nodejs 配列キューと forEach アプリケーションの詳細な説明

この記事では、Nodejs 開発プロセスで遭遇する配列の特性によって発生する問題と解決策、および配列...

SSH ポート転送とは何ですか?何の役に立つの?

目次序文1. ローカルポート転送2. リモートポート転送3. 動的ポート転送(SOCKS5) 4. ...

MySQL の日付と時刻関数の概要 (MySQL 5.X)

1. MySQLは現在の日付と時刻を取得する関数1.1 現在の日付 + 時刻 (日付 + 時刻) ...

CSSカスケーディングメカニズムについての簡単な説明

CSS にカスケード メカニズムがあるのはなぜですか? CSS では、同じ要素の特定のプロパティに同...

Vueライフサイクル機能の詳細な説明

目次ライフサイクル関数一般的なライフサイクルフックVue のインスタンス破棄について:要約するライフ...