ウェブサイト検索

Linux での「fuser」コマンドの使用方法を例とともに学びます


Linux システム管理で最も重要なタスクの 1 つは、プロセス管理です。これには、監視下でのいくつかの操作、プロセスへの通知、およびシステム上でのプロセスの優先順位の設定が含まれます。

top、ps、pgrep、kill、killall、nice など、プロセスを監視/処理するために設計された Linux ツール/ユーティリティが多数あり、その他の多くのツールと組み合わせられています。

この記事では、フューザーと呼ばれるリソース豊富な Linux ユーティリティを使用してプロセスを見つける方法を説明します。

推奨読書: 最高のメモリと CPU 使用率による上位実行プロセスの検索

fuser は、特定のプロセスがアクセスしているファイル、ディレクトリ、またはソケットに基づいてプロセスを見つけることを目的とした、シンプルかつ強力なコマンド ライン ユーティリティです。つまり、システム ユーザーがファイルまたはソケットを使用してプロセスを識別するのに役立ちます。

Linux システムでフューザーを使用する方法

fuser を使用するための従来の構文は次のとおりです。

fuser [options] [file|socket]
fuser [options] -SIGNAL [file|socket]
fuser -l 

以下は、フューザー を使用してシステム上のプロセスを見つける例をいくつか示します。

ディレクトリにアクセスしているプロセスを見つける

オプションを指定せずにfuser コマンドを実行すると、現在の作業ディレクトリに現在アクセスしているプロセスのPIDが表示されます。

fuser .
OR
fuser /home/tecmint

より詳細で明確な出力を得るには、次のように -v または --verbose を有効にします。出力では、fuser は現在のディレクトリの名前、次にプロセス所有者 (USER)、プロセス ID (PID) の列を出力します。 、以下の図に示すように、アクセス タイプ (ACCESS) とコマンド (COMMAND) です。

fuser -v

[アクセス] 列の下に、次の文字で示されるアクセス タイプが表示されます。

  1. c – 現在のディレクトリ
  2. e – 実行中の実行可能ファイル
  3. f – ファイルを開きますが、f は出力では省略されます。
  4. F – ファイルを書き込み用に開きます。F も出力から除外されます。
  5. r – ルートディレクトリ
  6. m – mmap されたファイルまたは共有ライブラリ

ファイル システムにアクセスしているプロセスを見つける

次に、次のようにして、どのプロセスが ~.bashrc ファイルにアクセスしているかを特定できます。

fuser -v -m .bashrc

オプション -m NAME または --mount NAME は、ファイル NAME にアクセスするすべてのプロセスに名前を付けることを意味します。ディレクトリを NAME と入力した場合、そのディレクトリにマウントされている可能性のあるファイル システムを使用するために、自動的に NAME/ に変更されます。

推奨読書: Linux のメモリ使用量別上位 15 のプロセスを見つける

fuser を使用してプロセスを強制終了し、通知する方法

このセクションでは、フューザーを使用してプロセスを強制終了し、シグナルを送信する方法について説明します。

ファイルまたはソケットにアクセスするプロセスを強制終了するには、次のように -k または --kill オプションを使用します。

sudo fuser -k .

プロセスを対話的に強制終了するには、ファイルまたはソケットにアクセスしているプロセスを強制終了する意図を確認するよう求められ、-i または --interactive オプションを使用します。

sudo fuser -ki .

前の 2 つのコマンドは、現在のディレクトリにアクセスしているすべてのプロセスを強制終了します。-SIGNAL が使用されている場合を除き、プロセスに送信されるデフォルトのシグナルは SIGKILL です。 。

推奨読書: Linux での Kill、Pkill、および Killall コマンドのガイド

以下のように -l または --list-signals オプションを使用して、すべてのシグナルをリストできます。

sudo fuser --list-signals 

したがって、次のコマンドのようにプロセスにシグナルを送信できます。SIGNAL は、上記の出力にリストされているシグナルのいずれかです。

sudo fuser -k -SIGNAL

たとえば、次のコマンドは、/boot ディレクトリを開いているすべてのプロセスに HUP シグナルを送信します。

sudo fuser -k -HUP /boot 

高度な使用オプション、追加の詳細情報については、フューザー のマニュアル ページを読んでみてください。

現時点ではこれで終わりです。必要なサポートや提案が必要な場合は、以下のフィードバック セクションからお問い合わせください。