実務で頻出するプロセス関連の用語を、一言定義+最小実例でサッと確認。
概念→例→関連コマンドへ横断リンクし、断片知識を体系化します。
このページで達成できること
- 「プロセス」「ジョブ」「サービス」など紛らわしい用語をまとめて整理
- 監視・障害対応・運用自動化の基礎語彙を最短で復習
- 関連トピック(権限/FD/シグナル/systemd 等)へスムーズに橋渡し
すぐ引けるミニ索引
| 用語 | 一言で | 代表コマンド |
|---|---|---|
| プロセス | 実行中プログラムの実体(PID付き) | ps, top |
| PID / PPID | プロセスID / 親プロセスID | ps -o pid,ppid,cmd |
| フォア/バックグラウンド | 端末前面/背面での実行 | &, fg, bg, jobs |
| ジョブ | シェルの管理単位(対話限定) | jobs, fg, bg |
| デーモン / サービス | 端末に紐づかない常駐プロセス | systemctl, journalctl |
| 孤児 / ゾンビ | 親喪失の子 / 回収待ちの終了済み | ps -o stat, wait |
| シグナル | 非同期通知(終了・再読込など) | kill, trap |
| 終了ステータス | 成功=0 / 失敗≠0 | $? |
| nice 値 / 優先度 | スケジューラへの譲り具合 | nice, renice |
| cgroups / 限界 | CPU/メモリ等のリソース制限 | systemd-run --scope |
| FD(0/1/2) | 標準入出力と標準エラー | リダイレクト |
| 環境変数の継承 | 親→子プロセスに引き継がれる設定 | export, env |
用語解説(繰り返しブロック)
プロセス(process)
とは:実行中プログラムの実体。PIDで識別され親子関係を持つ。
最小実例
sleep 100 & echo $! # 直前のPID
ps -o pid,ppid,cmd -p $!
関連:ps / top / pstree / kill / wait
落とし穴:端末を閉じるとSIGHUP。長時間実行はnohupやsystemdで管理。
PID / PPID
とは:プロセスIDと親プロセスID。系譜を追う鍵。
最小実例
ps -o pid,ppid,cmd --sort=ppid | head
pstree -p
関連:ps / pstree / 孤児プロセス
落とし穴:親終了後は**PPID=1(systemd)**に付け替え。
フォアグラウンド / バックグラウンド実行
とは:前面で端末を占有して走る/背面で解放して走る。
最小実例
sleep 100 & # 裏送り
jobs; fg # 前面に戻す
関連:& / jobs / fg / bg / disown
落とし穴:ジョブ制御は対話シェル限定。非対話はsystemd等を使う。
ジョブ(job)とプロセスの違い
とは:ジョブはシェルの管理単位(1つ以上のプロセスを束ねる)。
最小実例
sleep 10 | sleep 20 & # 1ジョブ=2プロセス
jobs -l
関連:プロセスグループ / セッション / 端末制御
落とし穴:kill %1はジョブ、kill 1234はPIDに送る。
デーモン / サービス(systemd unit)
とは:端末に紐づかない常駐プロセス。systemdが起動・監視。
最小実例
systemctl status sshd
journalctl -u sshd --since -1h
関連:systemctl / journalctl / Unit設定
落とし穴:自作スクリプトはsystemd化して再起動・ログを標準化。
孤児 / ゾンビ
とは:親を失いPID1配下へ移された子/終了済みで回収待ち。
最小実例
ps -o pid,ppid,stat,cmd | awk '$3 ~ /Z/'
関連:wait / ps / シグナル
落とし穴:ゾンビはCPUを食わないが親の回収バグのサイン。
シグナル(signal)
とは:プロセスへの非同期通知(終了・停止・再読込)。
最小実例
trap 'echo reload' HUP
kill -HUP $$
関連:kill / pkill / trap / killall
落とし穴:SIGKILLは捕捉不可。後片付けはTERMやHUPで。
終了ステータス(exit status)
とは:成功0/失敗≠0。&&/||分岐の根拠。
最小実例
false; echo $? # => 1
関連:set -e / pipefail / if
落とし穴:パイプラインはset -o pipefailがないと最後だけを見る。
nice 値 / 優先度
とは:スケジューラへの譲り具合(-20高優先〜19低)。
最小実例
nice -n 10 gzip bigfile &
renice 5 -p <PID>
関連:ps -o pid,ni,pri,cmd / top
落とし穴:過度な負のniceは全体影響。権限要件にも注意。
cgroups / リソース制限
とは:CPU・メモリ・IOなどをグループ単位で制限。
最小実例(systemdスコープ)
systemd-run --scope -p MemoryMax=500M -p CPUQuota=50% sleep 60
関連:コンテナ / 名前空間 / systemctl
落とし穴:制限超過時の挙動(OOM kill等)を事前把握。
環境変数の継承
とは:親→子へ値が引き継がれるプロセス間の設定伝達。
最小実例
export API=token; env | grep API
API=tmp cmd # そのコマンドの間だけ上書き
関連:export / プロファイル / サービス環境
落とし穴:sudoやサービス起動では環境が別物になりがち。
FD(ファイルディスクリプタ)
とは:プロセスの入出力番号(0/1/2)。
最小実例
cmd >out.txt 2>err.txt
cmd >all.txt 2>&1
関連:リダイレクト / lsof -p
落とし穴:リダイレクトの順序で結果が変わる。
サブシェル / セッション / プロセスグループ
とは:()で作る子シェル/ログイン単位/シグナル配布単位。
最小実例
( cd /tmp; touch a ); pwd # 親のcwdに影響なし
関連:setsid / tee / xargs -P
落とし穴:サブシェル内の変数は外へ戻らない。
監視と解析の基本ツール
とは:状態を見る・原因を絞るための標準的観察手段。
最小実例
top -H # スレッド表示
lsof -p <PID> # 開いているFD/ファイル
strace -p <PID> # システムコール追跡(本番は慎重に)
関連:htop / pidstat / perf
落とし穴:straceは負荷増や遅延を招くので本番で常用しない。
運用の現場Tips
- 端末依存を排除:長時間ジョブは
systemd化し、ログはjournalctlで一元管理。 - やさしい停止→強制終了:
TERM→QUIT/HUP→KILLの順。 - リソース上限を前提に:バッチや解析系は
CPUQuota/MemoryMaxを必ず設定。 - 証跡を残す:
/usr/bin/time -vで実行時間とメモリを計測。
関連リンク(学習ハブ内)
- 権限とumask:https://bashdo.com/learn/glossary/permission
- 標準入出力とFD:https://bashdo.com/learn/glossary/io
- シグナルとtrap:https://bashdo.com/learn/glossary/signal
- systemd入門:https://bashdo.com/learn/glossary/systemd
- ジョブ制御:https://bashdo.com/learn/glossary/jobs
- プロセス優先度・cgroups:https://bashdo.com/learn/glossary/cgroups

