101.2基礎
現在のLinuxがsystemd、SysVinit、または別の仕組みのどれをPID 1として使っているか確認する。
プロセス名だけを表示する。
適切なコマンドはどれか。
× 不正解
Linuxの最初のユーザー空間プロセスはPID 1である。psでPID 1のcomm列を表示すれば実装を確認できる。
詳細解説
誤り
ps -p $$ -o comm=現在のシェル自身を表示し、PID 1とは限らない。
現在シェルを表示する。
誤り
ps -p 2 -o comm=PID 2を対象にし、初期プロセスではない。
PID 2を表示する。
誤り
pgrep init名前がinitのプロセスを探すだけで、PID 1の実体を直接確認しない。
名前一致だけでPID 1を保証しない。
正しい
ps -p 1 -o comm=PID 1のコマンド名を見出しなしで表示する。
正解。PID 1の名前を直接表示する。
実際に確かめる
一時的な検証環境で実行できる例です。
ps -p 1 -o pid=,comm=期待される結果
1とPID 1の名前。systemd、init、コンテナランタイム等、環境により異なる理解のポイント
- PID 1は初期プロセス
- $$は現在のシェル
- 実装は環境で異なる
確認時の注意
- 確認環境: Linux / procps-ng
基礎のおさらい
実装候補
systemd、SysVinit、コンテナ用init等がPID 1になり得る。
comm列
実行ファイルに由来する短いコマンド名を表示する。
問題IDKP-101-144
確認環境Linux / procps-ng
最終技術確認2026-08-12
誤り・権利侵害を報告