概要
現在のプロセス状態を一覧表示します。瞬間的な状態確認、障害調査、PID取得、親子関係の把握に役立ちます。
基本構文
ps [オプション]詳細解説
psは、現在存在するプロセス情報を一時点のスナップショットとして表示するコマンドです。継続監視ではなく、今この瞬間に何が動いているかを把握する道具です。
実務では、サービスが起動しているか、どのユーザーが動かしているか、親プロセスは何か、コマンドライン引数はどうなっているかを確認するために使います。
Linuxのpsは、UNIX風オプションとBSD風オプションが混在する点が特徴です。ps -efとps auxの代表形を読めることが重要です。
このコマンドを使う場面
サービス起動確認、異常プロセスの発見、PID取得、親子関係の把握、調査ログへの証跡取得に使います。
まず安全に試す方法
1. ps
2. ps -ef | head
3. ps aux | head
4. ps -o pid,ppid,user,cmd -p $$
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
同じ状態を二つの代表書式で表示し、列の意味の違いを確認します。
-
ps -o pid,ppid,cmd -p $$で現在のシェルの親子関係を確認します。
資格試験との関連
-
LinuC レベル1
範囲: 1.01.4 プロセスの生成、監視、終了根拠: officialLinuCレベル1では、プロセスの確認、監視、終了の基礎が問われます。
-
LPIC-1
範囲: 103.5 Create, monitor and kill processes根拠: officialLPIC-1では、プロセスの確認、監視、終了の基礎が問われます。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorial試験横断で、psはLinux運用の基礎体力を支える重要なコマンドです。
実行結果サンプル
-
ps -ef | head -3UID PID PPID C STIME TTY TIME CMD... -
ps -o pid,ppid,user,cmd -p $$PID PPID USER CMD...
戻り値コード
- 0 正常終了。プロセス情報を表示しました。
- >0 不正な書式、対象PID不存在、権限不足などで表示できませんでした。
使用例
psps -efps auxps -o pid,ppid,user,cmd -p 1234
よくあるエラー
-
ps auxとps -efの違いが分からない 原因: BSD風とUNIX風の書式が混在しているためです。対処: 代表的な二つの見方を覚え、必要なら-oで列を固定します。
-
監視したいのに一度しか出力されない 原因: psはスナップショット表示です。対処: 継続監視にはtopやwatchを検討します。
導入・互換性情報
Linuxのprocps-ngではBSD風のps auxも広く使えますが、移植性を意識するなら出力列を-oで明示するのが安全です。
注意点 / セキュリティリスク
危険度は低いですが、出力の意味を誤ると誤診断につながります。psは継続監視ではなく瞬間的な一覧です。
FAQ
-
Q. psとtopはどう違いますか。 A. psは一時点の一覧表示、topは継続更新しながら監視する道具です。
-
Q. PIDだけ欲しい時はどうしますか。 A. ps -o pid=のように列を絞る方法や、pgrepの利用が便利です。
関連用語
- OS
- Linux
- ユーザー空間
- システムコール
- init
- SysVinit
- OpenRC
- ターミナル
- 端末エミュレータ
- TTY
- PTY
- procfs
- capability
- user
- SELinux
- AppArmor
- seccomp
- sandbox
- monitoring
- tracing
- CPU usage
- memory usage
- process state
- zombie process
- orphan process
- OOM killer
- memory leak
- deadlock
- race condition
- bottleneck
- core dump
- stack trace
- JVM
- CPU
- core
- thread
- RAM
参照リンク
- カテゴリー: Process And Jobs
- レベル: Beginner
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎