Linuxでプロセスを一覧表示する方法: 完全ガイド

LightNode
By LightNode ·

はじめに

Linuxオペレーティングシステムでは、プロセスは実行の基本単位です。システムタスク、ユーザーアプリケーション、バックグラウンドサービスなど、実行中のプログラムを表します。プロセスを効率的に管理し、リスト化する能力は、システム管理者やユーザーにとって重要であり、システムパフォーマンスの監視、問題の診断、リソース使用の最適化に役立ちます。

この記事では、pstop などの基本コマンドから、pstreelsof といった高度なツールまで、Linuxでプロセスを一覧表示するためのコマンドやツールを詳しく説明します。この記事を読むことで、Linux環境でプロセスを効果的に管理するための知識が得られるでしょう。

プロセスを一覧表示する基本コマンド

ps コマンド

ps コマンドは、Linuxで最も一般的に使用されるプロセス一覧表示コマンドです。現在のプロセスのスナップショットを提供します。

  • ps: 現在のシェルのプロセスを表示。
  • ps -e または ps -A: システム上で動作しているすべてのプロセスを一覧表示。
  • ps aux: ユーザーが所有していないプロセスを含む、すべてのプロセスの詳細情報を表示。

使用例:

ps
ps -e
ps aux

top コマンド

top コマンドは、リアルタイムのシステム監視に役立つ強力なツールです。プロセスリストを定期的に更新し、最新情報を動的に表示します。

  • top を実行してインターフェイスを開始。CPU使用率、メモリ使用率、システム統計、プロセスリストが表示されます。
  • q キーで top を終了します。

主なオプション:

  • top -n 1: プロセスリストを一度だけ表示して終了。
  • top -u [username]: 特定のユーザーのプロセスを表示。

使用例:

top
top -n 1
top -u user

htop コマンド

htop は、top に比べて視覚的にわかりやすいインタラクティブなプロセスビューアです。プロセスリストを縦横にスクロールでき、カラフルな情報を提供します。

使用方法:

  1. インストール(未インストールの場合):
    sudo apt-get install htop  # Debian系システム向け
    sudo yum install htop      # Red Hat系システム向け
    
  2. 以下のコマンドで実行:
    htop
    

pgrep コマンド

pgrep コマンドは、名前やその他の属性に基づいてプロセスを検索するために使用されます。スクリプトや自動化で特に便利です。

基本使用法:

  • pgrep [pattern]: 指定したパターンに一致するプロセスID(PID)のリストを表示。
  • pgrep -u [username] [pattern]: ユーザーでフィルタリング。

使用例:

pgrep bash
pgrep -u root sshd

高度なプロセスリスト化テクニック

pstree コマンド

pstree コマンドは、プロセスをツリー形式で表示し、プロセス間の階層関係を示します。プロセスの親子関係を理解する際に便利です。

  • pstree: すべてのプロセスツリーを表示。
  • pstree -p: プロセスID(PID)を出力に含める。
  • pstree [username]: 特定のユーザーのプロセスツリーを表示。

使用例:

pstree
pstree -p
pstree root

lsof コマンド

lsof(List Open Files)は、プロセスによって開かれているファイルに関する情報を一覧表示します。特定のファイルやポートを使用しているプロセスを特定する際に役立ちます。

基本使用法:

  • lsof: すべての開いているファイルを一覧表示。
  • lsof -u [username]: 特定のユーザーによって開かれているファイルを表示。
  • lsof [file]: 特定のファイルを開いているプロセスを一覧表示。
  • lsof -i :[port]: 特定のネットワークポートを使用しているプロセスを表示。

使用例:

lsof
lsof -u root
lsof /var/log/syslog
lsof -i :80

pidstat コマンド

pidstat コマンドは、CPU使用率、メモリ使用量、I/O統計など、Linuxタスク(プロセス)の統計情報を提供します。

基本使用法:

  • pidstat: タスクのCPU使用率を表示。
  • pidstat -r: メモリ使用量を表示。
  • pidstat -d: I/O統計を表示。

使用例:

pidstat
pidstat -r
pidstat -d

watch コマンド

watch コマンドは、指定したプログラムを定期的に実行し、その出力を表示します。コマンドの出力の変化を観察する際に便利です。

基本使用法:

  • watch [command]: 指定したコマンドを定期的に実行(デフォルトは2秒ごと)。
  • watch -n [interval] [command]: 実行間隔を指定。

使用例:

watch ps -e
watch -n 5 netstat -tuln

実践的な例

システムパフォーマンスの監視

システムパフォーマンスの監視は、システムの健全性と応答性を維持するために重要です。特に tophtop コマンドが便利です。

top を使用したパフォーマンス監視

top コマンドは、システムプロセスとそのリソース使用状況をリアルタイムで表示します。CPUやメモリを過剰に消費しているプロセスを特定するのに役立ちます。

使用例:

top

top インターフェイス内の主な列:

  • PID: プロセスIDを表示。
  • %CPU: CPU使用率を表示。
  • %MEM: メモリ使用率を表示。

htop を使用したパフォーマンス監視

htop は、top よりも優れたインタラクティブなインターフェイスを提供します。プロセスの並べ替え、特定のプロセスの検索、インターフェイス内でのプロセスの終了が可能です。

使用例:

htop

htop インターフェイス内の操作:

  • 矢印キーでプロセスリストを移動。
  • F3 キーで特定のプロセスを検索。
  • F9 キーで選択したプロセスを終了。

特定のプロセスの管理

特定のプロセスを管理するには、pspgrep などのコマンドでプロセスを特定し、適切なアクションを実行します。

pspgrep を使用したプロセス検索

名前やその他の属性でプロセスを検索するには、pspgrep コマンドが効果的です。

ps を使用した例:

ps aux | grep apache2

pgrep を使用した例:

pgrep apache2

プロセスへのシグナル送信

プロセスID (PID) を特定した後、シグナルを使用してプロセスを管理できます。kill コマンドはプロセスにシグナルを送信し、killall コマンドは名前が一致するすべてのプロセスにシグナルを送信します。

主なコマンド:

  • kill [PID]: デフォルトのシグナル (SIGTERM) を送信してプロセスを終了。
  • kill -9 [PID]: SIGKILL シグナルを送信して強制終了。
  • killall [プロセス名]: 指定した名前のすべてのプロセスにデフォルトのシグナルを送信。

使用例:

kill 1234
kill -9 1234
killall apache2

開いているファイルやネットワーク接続の確認

lsof コマンドを使用すると、特定のプロセスによって使用されているファイルやネットワーク接続を特定できます。これにより、ファイルロックやネットワークポートの競合などの問題を診断するのに役立ちます。

使用例:

lsof /var/log/syslog
lsof -i :80

プロセスツリーの表示

pstree コマンドを使用すると、プロセス間の親子関係を視覚化できます。これにより、プロセスの階層や依存関係を理解するのに役立ちます。

使用例:

pstree

List Processes Linux

FAQ

Linuxのプロセスとは何ですか?

Linuxにおけるプロセスは、実行中のプログラムのインスタンスを指します。プログラムコード、現在の活動状態、メモリやファイルディスクリプタ、セキュリティ属性などの関連リソースを含みます。プロセスはLinuxオペレーティングシステムの基盤であり、複数のプログラムを同時に実行するマルチタスクを可能にします。

Linuxで実行中のすべてのプロセスを一覧表示するには?

すべてのプロセスを表示するには、ps コマンドを適切なオプションで使用します:

ps -e

または

ps aux

リアルタイム表示には、tophtop コマンドを使用できます。

tophtop の違いは何ですか?

top はコマンドラインツールで、システムプロセスとリソース使用状況をリアルタイムで表示します。一方、htoptop を拡張したもので、より使いやすく、インタラクティブなインターフェイスを提供します。htop では、プロセスリストのスクロール、特定プロセスの検索、インターフェイス内でのプロセス終了が可能です。

特定のプロセスを名前で検索するには?

pgrep コマンドを使用して、名前でプロセスを検索できます:

pgrep process_name

例えば、名前に "apache2" を含むプロセスを検索するには:

pgrep apache2

Linuxでプロセスを終了させるには?

プロセスを終了させるには、pstoppgrep などのコマンドでプロセスID (PID) を特定し、kill コマンドを使用します:

kill PID

デフォルトのシグナルで終了しない場合、-9 オプションを使用して強制終了できます:

kill -9 PID

プロセスの階層ツリーを表示するには?

プロセスの階層ツリーを表示するには、pstree コマンドを使用します:

pstree

プロセスIDを含めて表示するには:

pstree -p

開いているファイルとそれを使用しているプロセスを一覧表示するには?

lsof コマンドを使用すると、プロセスによって開かれているファイル情報を一覧表示できます。すべての開いているファイルを表示するには:

lsof

特定のファイルを使用しているプロセスを確認するには:

lsof /path/to/file

システムパフォーマンスを継続的に監視するには?

watch コマンドを使用すると、指定したコマンドを定期的に実行してその出力を表示できます。例えば、2秒ごとにすべてのプロセスを監視するには:

watch ps -e

プロセスごとのCPU、メモリ、I/O使用量の詳細統計を表示するには?

pidstat コマンドを使用すると、プロセスごとのCPU、メモリ、I/O使用量の詳細統計を表示できます。CPU使用量を表示するには:

pidstat

メモリ使用量を表示するには:

pidstat -r

I/O統計を表示するには:

pidstat -d

応答しないプロセスをどうすればよいですか?

応答しないプロセスがある場合、kill コマンドでPIDを指定して終了を試みます。終了しない場合、kill -9 コマンドで強制終了します:

kill -9 PID

この操作がシステムや重要なタスクに悪影響を及ぼさないことを確認してください。