新Linux入門|psコマンドとは:Linuxで学ぶプロセスの確認と管理の基本

 Linuxシステムを管理していると、「今どんなプログラムが動いているの?」という状況を知りたい場面がよくありますよね。
そんなときに活躍するのが ps(Process Status)コマンド です!

 psコマンドは、現在実行中のプロセスを一覧表示して、プロセスの状態・実行ユーザー・CPU使用率などを確認できるとても便利なコマンドです💡
システム監視やトラブルシューティングには欠かせない基本コマンドの1つです。

⚙️ psコマンドの概要

 ps(Process Status)コマンドは、LinuxやUNIX系OSで実行中のプロセス情報を表示するためのコマンドです。
 どのプログラムがどんな状態で動いているのかを調べたり、停止中や暴走中のプロセスを確認したりするのに使われます。

項目内容
コマンド名ps(Process Status)
主な目的実行中のプロセスの状態を表示・監視する。
よく使われる場面プロセスの監視、トラブル調査、リソース確認
出力項目例PID(プロセスID)、TTY、CPU使用時間、コマンド名など

💬ポイント
psは「プロセスのスナップショット」を表示するコマンドです。
リアルタイム表示が必要な場合は、top コマンドを併用するのがオススメです。

🧭 psコマンドの書式

ps [オプション]

オプションの組み合わせによって、
「特定のユーザーのプロセスだけ表示する」「全プロセスを詳細に表示する」といった指定ができます。

⚙️ 主なオプションと説明

オプション説明
-eシステム上で実行中のすべてのプロセスを表示
-f詳細(フル)フォーマットで表示(親子関係も表示される)
-lロングフォーマットでプロセスの詳細情報を表示
-aすべての端末で実行中のプロセスを表示
-uユーザー名やCPU・メモリ使用率などの詳細を含めて表示
-p特定のプロセスID(PID)に関する情報を表示
auxBSD形式で全プロセスを表示(ユーザー別、CPU使用率など)

💡ポイント
オプションはよく組み合わせて使われます。
たとえば、ps -ef は「全プロセスを詳細付きで表示」という最も一般的な使い方です。

🔍 使用例と出力の解説

① 基本の使用例(自分のシェル内のプロセスを表示)

[suzuki@AlmaLinux ~]$ ps
  PID TTY          TIME CMD
 2170 pts/0    00:00:00 bash
 2212 pts/0    00:00:00 ps

💬ポイント
現在のターミナル(TTY)上で動いているプロセス(bashとps自身)が表示されます。
PID(プロセスID)をもとに、プロセスを特定できます。

② 全プロセスの詳細を表示(-ef)

[suzuki@AlmaLinux ~]$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:00 ?        00:00:02 systemd
root      1180     1  0 09:01 ?        00:00:00 sshd: suzuki@pts/0
suzuki    2170  1180  0 09:02 pts/0    00:00:00 -bash
suzuki    2234  2170  0 09:03 pts/0    00:00:00 ps -ef
列名意味
UID実行ユーザー名
PIDプロセスID(識別番号)
PPID親プロセスID(どのプロセスが作ったか)
CCPU使用率
STIMEプロセスの開始時刻
TTY端末名(?は端末非関連)
TIMECPU使用時間
CMD実行コマンド名

💬ポイント
 この出力では、systemd が最初に起動し、その子プロセスとして sshd → bash → ps が順に生成されているのがわかります。
まさに プロセスの親子関係ツリー が見える瞬間です👀

③ 特定ユーザーのプロセスを確認(-u)

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

💬ポイント
ユーザーsuzuki が実行しているプロセスだけを表示します。
マルチユーザー環境で、他のユーザーと区別して自分のプロセスを確認するときに便利です。

④ 特定のPIDを指定して情報を表示(-p)

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

💬ポイント
PID 2170 のプロセス(bash)のみが表示されます。
特定のプロセスの動作確認や状態チェックを行う際に使用します。

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

[suzuki@AlmaLinux ~]$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  2170  2100  0  80   0 - 29284 do_wai pts/0    00:00:00 bash
0 R  1000  2245  2170  0  80   0 - 38331 -      pts/0    00:00:00 ps
列名意味
Fフラグ(プロセスの状態を表す)
S状態(R:実行中、S:スリープ中など)
UID実行ユーザーID
PRI優先度(Priority)
NInice値(優先度の調整値)
SZメモリ使用量(ページ単位)
CMD実行コマンド名

💬ポイント
ロングフォーマット(-l)はプロセスの内部状態を詳しく見るのに最適です。
システム解析やトラブル調査時に役立ちます。

📊 ps -aux と ps -ef の違い

形式説明特徴
ps -efSystem V形式(AlmaLinux標準)PID・PPIDなど親子関係を確認しやすい
ps auxBSD形式CPU・メモリ使用率を見やすく表示

💬ポイント
両者は出力形式が異なりますが、どちらも全プロセスの確認に使えます。
習慣的に ps -ef を使う管理者が多いです。

🌈 まとめ

  • psコマンドは、Linuxで実行中のプロセスを確認するための基本ツール。
  • ps -ef や ps -u suzuki など、オプションを組み合わせることで柔軟に情報を取得できる。
  • システムの状態把握・トラブル調査・プロセス制御の第一歩として欠かせない存在。

次回は、「topコマンドでリアルタイム監視する方法」 を学んで、
プロセス管理のスキルをさらにレベルアップしましょう🚀