103.5基礎
現在の対話的Bashが管理するバックグラウンドジョブを確認する。
ジョブ番号に加えてプロセスIDも表示する。
適切なBash組み込みコマンドはどれか。
× 不正解
jobsは現在のシェルが管理するジョブを表示する。-lを付けると通常のジョブ情報にPIDを加える。
詳細解説
誤り
ps -p $$現在のBash自身を表示し、Bashのジョブ表を一覧しない。
現在のBash自身しか表示しない。
正しい
jobs -l現在のシェルのジョブ一覧へPID情報を加えて表示する。
正解。ジョブ番号、状態、コマンドにPIDも加える。
誤り
pgrep -l bashシステム上のbashプロセスを名前で探し、現在のジョブ表とは一致しない。
別シェルを含む名前検索である。
誤り
wait -lBashのwaitにジョブ一覧をPID付きで表示する-lオプションはない。
waitの有効な一覧オプションではない。
実際に確かめる
一時的な検証環境で実行できる例です。
set -m; sleep 0.2 & jobs -l; wait期待される結果
ジョブ番号、PID、Running、sleepを含む1行(書式はBashにより異なる)理解のポイント
- jobsは現在のシェルのジョブ表
- -lはPIDも表示
- psの全プロセス一覧とは範囲が異なる
確認時の注意
- 確認環境: Bash 5.2
基礎のおさらい
ジョブ番号
%1のような番号はシェルごとのジョブ表でのみ意味を持つ。
PIDとの違い
PIDはOS全体でプロセスを識別し、ジョブ番号はその対話シェル内でジョブを識別する。
問題IDKP-103-079
確認環境Bash 5.2
最終技術確認2026-08-12
誤り・権利侵害を報告