【ピーエス】

ps とは?

💡 今動いているプロセスの名簿係、誰が何をしているか丸わかり
📌 このページのポイント
ps — 実行中プロセスのスナップショット $ ps aux | grep nginx USER PID %CPU %MEM STAT START COMMAND root 1234 0.0 0.5 Ss Mar25 nginx: master www 5678 8.5 3.2 Sl Mar25 nginx: worker www 5679 7.2 3.1 Sl Mar25 nginx: worker プロセスの状態コード R = 実行中 S = スリープ T = 停止中 Z = ゾンビ
psのイメージ
ひよこ ひよこ

psコマンドって何ができるの?

ペンギン先生 ペンギン先生

今コンピュータ上で動いているプロセスプログラム)の一覧を表示するコマンドだよ。「今、何が動いているの?」を調べるときに使うんだ。従業員名簿を見て「今日出勤しているのは誰?」を確認するようなイメージだね

ひよこ ひよこ

ps aux ってよく見るけど、auxって何なの?

ペンギン先生 ペンギン先生

aは「全ユーザーのプロセス」、uは「詳細情報を表示」、xは「端末に紐づかないプロセスも表示」という意味だよ。この3つをセットにした `ps aux` が一番よく使われるパターンで、システム上の全プロセスを一覧表示できるんだ

ひよこ ひよこ

topとの違いは何なの?

ペンギン先生 ペンギン先生

topはリアルタイムで画面が更新され続ける「動画」で、psは今の瞬間を切り取った「写真」だよ。psは結果をテキストで出力するから、grepと組み合わせて `ps aux | grep nginx` のように特定のプロセスだけ絞り込めるのが便利なんだ

ひよこ ひよこ

プロセスの状態に「S」とか「R」とか「Z」とか表示されてるけど、あれは何なの?

ペンギン先生 ペンギン先生

プロセスの状態を示すコードだよ。Rは実行中(Running)、Sはスリープ中(Sleeping)、Zはゾンビ(Zombie)。ゾンビプロセスっていうのは終了したのに親プロセスが片付けていない幽霊みたいな状態で、大量に溜まるとシステムに問題を起こすことがあるんだ

ひよこ ひよこ

psにはBSD形式とSYSV形式があるって聞いたけど、どういうことなの?

ペンギン先生 ペンギン先生

歴史的な経緯で、Unixの派生であるBSD系とSystem V系で書き方が違うんだよ。`ps aux`(ハイフンなし)がBSD形式、`ps -ef`(ハイフンあり)がSYSV形式。Linuxのpsはどちらも使えるようになっているよ。出力フォーマットが微妙に違うから、チームで統一しておくと混乱しないね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ps」って出てきたら「実行中のプロセスの一覧を表示するコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「process status」 = プロセスの状態
💬 「process(プロセス)」の「status(状態)」を表示するという、そのままの意味だよ
← 用語集にもどる