新Linux入門|psコマンド徹底解説:プロセスの確認・監視・管理をマスターする

Linuxでシステムを運用していると、
「今どんなプログラムが動いているのか?」
「CPUやメモリを食っているのはどれだ?」
といったことを調べたい場面がよくあります。

そんなときに欠かせないのが psコマンド(Process Status) です。
 このコマンドを使えば、現在実行中のプロセス情報を一覧表示して確認・監視・管理 することができます。

ここでは、psコマンドの基本から便利なオプションの使い方までをわかりやすく解説します。

💡 psコマンドとは?

 ps(process status) コマンドは、Linuxシステム上で現在実行中のプロセス情報を表示するためのコマンドです。
 「プロセス」とは、実行中のプログラムやサービスのことで、psコマンドはそれらの状態を監視するための基本ツールです。

項目説明
コマンド名ps
読み方ピーエス
由来“process status” の略
役割実行中のプロセスの情報を表示する
主な用途システム監視、トラブルシューティング、リソース調査

⚙️ コマンド書式

psコマンドの基本的な構文は次の通りです。

ps [オプション]

オプションを付けることで、表示内容や対象プロセスを細かく制御することができます。

🧩 主なオプション

オプション説明
-eシステム上で実行中の全てのプロセスを表示
-f詳細(Full)フォーマットで表示
-lロングフォーマットでプロセスの詳細を表示
-aすべての端末(他のユーザーを含む)で実行中のプロセスを表示
-u各プロセスのユーザー情報、CPU使用率などを表示
-p PID特定のプロセスID(PID)を指定して表示
auxBSD形式で全プロセスの詳細を表示(よく使われる形式)

💬 ポイント

  • ps -ef は「全プロセスを詳細表示」する最も一般的な形式です。
  • ps aux はBSD形式の表示方式で、top コマンドのような見やすい出力になります。

🖥️ psコマンドの使用例と出力解説

① 基本的な使用例(現在のターミナルのプロセスを表示)

[suzuki@AlmaLinux ~]$ ps
  PID TTY          TIME CMD
 3222 pts/0    00:00:00 bash
 3686 pts/0    00:00:00 ps
列名説明
PIDプロセスID(各プロセスに割り当てられた一意の番号)
TTYプロセスが実行されている端末
TIME累計CPU時間
CMD実行されたコマンド名

💡 説明
bash シェル上で ps コマンドを実行しているため、2つのプロセス(bashとps)が表示されています。

② システム全体のプロセスを表示(-eオプション)

[suzuki@AlmaLinux ~]$ ps -e
  PID TTY          TIME CMD
    1 ?        00:00:01 systemd
    2 ?        00:00:00 kthreadd
  775 ?        00:00:00 sshd
 3222 pts/0    00:00:00 bash
 3708 pts/0    00:00:00 sleep
 3709 pts/0    00:00:00 ps

💬 システム上のすべてのプロセスが一覧で表示されます。
? は端末(TTY)を持たないシステムプロセスを意味します。

③ 詳細表示(-efオプション)

[suzuki@AlmaLinux ~]$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  1月21 ?        00:00:01 /usr/lib/systemd/systemd
root         2     0  0  1月21 ?        00:00:00 [kthreadd]
root      3708   775  0 00:42 ?        00:00:00 sleep 60
suzuki    3709  3222  0 00:42 pts/0    00:00:00 ps -ef
列名意味
UIDプロセスの所有ユーザー
PIDプロセスID
PPID親プロセスID
CCPU使用率
STIMEプロセスの開始時刻
TTY端末
TIME累計CPU使用時間
CMD実行コマンド名

💡 PPID を見ることで、どのプロセスがどの親プロセスから起動されたのかを把握できます。

④ 特定のユーザーのプロセス表示(-u)

[suzuki@AlmaLinux ~]$ ps -u suzuki
  PID TTY          TIME CMD
 3222 pts/0    00:00:00 bash
 3709 pts/0    00:00:00 ps

このように、自分が実行しているプロセスのみを確認できます。

⑤ 特定のプロセスIDの情報を表示(-p)

[suzuki@AlmaLinux ~]$ ps -p 3222
  PID TTY          TIME CMD
 3222 pts/0    00:00:00 bash

PIDを指定して、対象プロセスの情報だけを取得できます。

⑥ ロングフォーマットで詳細表示(-l)

[suzuki@AlmaLinux ~]$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  3222  3212  0  80   0 - 29284 do_wai pts/0    00:00:00 bash
0 R  1000  3778  3222  0  80   0 - 38331 -      pts/0    00:00:00 ps
列名説明
Fプロセスのフラグ情報(特性を示す)
Sプロセスの状態(R=実行中、S=スリープなど)
PRI優先度
NInice値(スケジューリング優先度)
ADDRメモリアドレス
SZ仮想メモリサイズ
WCHANプロセスが待機中のカーネル関数名

💡 ps -l はプロセスの動作状態を詳しく把握したいときに有効です。

🔍 BSD形式の出力(ps aux)

[suzuki@AlmaLinux ~]$ ps aux | head
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2 169284  8796 ?        Ss   1月21   0:01 /usr/lib/systemd/systemd
root         2  0.0  0.0      0     0 ?        S    1月21   0:00 [kthreadd]
suzuki    3222  0.0  0.1  29000  4000 pts/0    Ss   00:42   0:00 bash
suzuki    3709  0.0  0.0  20000  1000 pts/0    R+   00:43   0:00 ps aux

この形式は top コマンドのように、CPU・メモリ使用率が一目でわかるのでよく使われます。

✅ まとめ

psコマンドは、Linuxのプロセス管理の基本中の基本 です。
 システム管理やトラブルシューティングの現場では欠かせないツールであり、組み合わせ次第で多彩な情報を取得できます。

操作内容コマンド説明
現在の端末のプロセスps最も基本的な形式
全プロセスを表示ps -eシステム全体を確認
詳細表示ps -efUID・PIDなどを含む
特定ユーザーのみps -u suzuki自分のプロセスを確認
特定PIDを指定ps -p 3222一つのプロセスを確認
ロング形式ps -l優先度や状態を含めて詳細表示
BSD形式ps auxCPU・メモリ使用率を確認

💬 一言アドバイス
ps -ef と ps aux は覚えておくと、どんなLinux環境でもすぐに状況把握できます。
慣れてきたら grep と組み合わせて「特定プロセスを絞り込み」できるようになるとさらに便利です。