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

推薦する

mysql5.6 の無効な utf8 設定の問題を解決する

mysql5.6 のグリーン バージョンを解凍すると、my-default.ini ファイルが作成さ...

Linux でディスクをマウントし、起動時に自動的にマウントするように設定する方法

皆さんの時間は貴重だと承知しているので、プロセス コマンドを直接書き留めておきます。設定できます。原...

Webpackプラグインを書いてnpmに公開するための80行のコード

1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...

Link と @import の違いを詳しく見る

ページで CSS を使用する主な方法は、スタイル属性値をインラインで追加する方法、ページ ヘッダーで...

js+ca​​nvas でコードレイン効果を実現

この記事では、js+ca​​nvasコードの雨効果の具体的なコードを参考までに共有します。具体的な内...

Vueのプラグインの仕組みとインストールの詳細を深く理解する

序文: Vue を使用する場合、多くの場合、カスタム プラグインをいくつか使用して記述し、 Vue....

Linux サーバーに Java Web プロジェクトをデプロイするための完全なチュートリアル

この記事は主にインターネット上の他のチュートリアルを参考にしています。実際に操作した上でのまとめです...

jsは配列の平坦化を実装します

目次配列をフラット化する方法1.flat() の使用2. 正規表現を使用する3.reduce()+c...

Dockerが新しいイメージをロードした後にリポジトリとタグ名が両方ともnoneになる問題を解決する

次のコマンドを使用できます: docker tag [イメージID] [名前]:[バージョン]例えば...

WindowsでのMySQLインストールチュートリアルの詳細な紹介

目次1. ダウンロードする前に理解しておくべき概念2. 必要なバージョンを選択する3. MySQLサ...

MySQL 5.7 で my.ini ファイルが見つからない場合の解決策

my.ini とは何ですか? my.ini は、MySQL データベースで使用される設定ファイルです...

Dockerイメージの圧縮と最適化操作

Docker が今日非常に人気がある理由は、主にその軽量性、迅速な展開、およびリソースの利用にありま...

CSSボックスの表示/非表示とトップレイヤーの実装コード

.imgbox{ 幅: 1200ピクセル; 高さ: 612px; 右マージン: 自動; 左マージン...

JSで実現したページサイドバーの効果に関する研究

目次発見: ディスプレイアニメーションの応用実装:記事の1行目を表示する効果を実現する方法実際、その...

フレームセットの高さを設定する際のインターフェース変形の解決策

現在、プロジェクトを作成しました。インターフェースは次のとおりです。これはフレームセットを使用して行...