実務で頻出する「ジョブ制御」関連の用語を、一言定義+最小実例でサッと確認。
シェル内のジョブ・プロセス管理を理解し、対話作業やバックグラウンド処理を安全に扱えるようにします。
このページで達成できること
- ジョブとプロセスの違いを正しく理解
- フォアグラウンド/バックグラウンドの切替を整理
- 停止・再開・裏送りの基本操作を習得
- 関連するシェル機能や制御の制限を把握
すぐ引けるミニ索引
| 用語 | 一言で | 代表コマンド |
|---|---|---|
| ジョブ | シェルが管理する実行単位(複数プロセスを含む) | jobs, fg, bg |
| フォアグラウンド | 端末を占有して動く実行状態 | fg |
| バックグラウンド | 端末を解放して裏で走る実行状態 | &, bg |
| 停止(サスペンド) | 実行を一時中断 | <Ctrl+Z> |
| ジョブ番号 | %1, %2 のようにシェル内で参照する番号 | jobs -l |
| disown | ジョブをシェル管理から外す | disown |
| nohup | ログアウト後も継続させるラッパー | nohup |
| 非対話制御の制約 | cronやsystemdではジョブ制御不可 | – |
用語解説(繰り返しブロック)
ジョブ(job)
とは:シェルが管理する実行単位。1ジョブは1つ以上のプロセスで構成される。
最小実例
sleep 10 | sleep 20 & # 1ジョブ=2プロセス
jobs -l
関連:プロセス / プロセスグループ / セッション
落とし穴:kill %1はジョブ番号宛。PIDと混同しないこと。
フォアグラウンド実行
とは:端末を占有して実行されるジョブ。終了まで次の操作を受け付けない。
最小実例
sleep 30 # フォアグラウンド
関連:fg / 前面復帰
落とし穴:長時間コマンドをフォアグラウンドで実行すると端末を塞ぐ。
バックグラウンド実行
とは:端末を解放して裏で実行されるジョブ。&で送る。
最小実例
sleep 100 &
jobs
関連:& / jobs / bg
落とし穴:ログアウト時に終了(SIGHUP)する → nohupやdisownで回避。
停止(サスペンド)
とは:Ctrl+Zで実行中のジョブを一時中断状態にすること。
最小実例
<Ctrl+Z>
jobs
関連:fg / bg / シグナル(SIGTSTP)
落とし穴:停止状態のまま放置するとリソースは解放されない。
ジョブ番号
とは:シェル内でジョブを識別する番号。%1のように参照できる。
最小実例
jobs -l
kill %1
関連:jobs / fg / bg
落とし穴:セッションごとに振り直されるため、他の端末からは使えない。
disown
とは:ジョブをシェルの管理から外し、ログアウト後も残す。
最小実例
sleep 200 &
disown %1
関連:jobs / nohup
落とし穴:disownしたジョブはjobsに表示されなくなる。
nohup
とは:ログアウト後もプロセスを生存させるラッパー。標準出力はnohup.outに保存される。
最小実例
nohup long-task.sh &
関連:disown / systemd
落とし穴:出力ファイルがカレントに溜まる。リダイレクト推奨。
非対話制御の制約
とは:cronやsystemdなど非対話環境ではジョブ制御(Ctrl+Z, fg, bg)が効かない。
最小実例
# cronやsystemdでは fg/bg/jobs は無効
関連:systemd / サービス管理
落とし穴:サーバー運用ではジョブ制御に依存しない設計が必須。
運用の現場Tips
- 長時間処理は最初からバックグラウンド+ログ管理を設計する
- SIGHUP対策には
nohupやdisown、本格運用はsystemd化 - 停止と再開は開発・検証向け。運用環境では状態不一致を招くため避ける
- ジョブ制御は便利だが対話限定機能であることを忘れないこと

