用語集:プロセス

実務で頻出するプロセス関連の用語を、一言定義+最小実例でサッと確認。
概念→例→関連コマンドへ横断リンクし、断片知識を体系化します。

このページで達成できること

  • 「プロセス」「ジョブ」「サービス」など紛らわしい用語をまとめて整理
  • 監視・障害対応・運用自動化の基礎語彙を最短で復習
  • 関連トピック(権限/FD/シグナル/systemd 等)へスムーズに橋渡し

すぐ引けるミニ索引

用語一言で代表コマンド
プロセス実行中プログラムの実体(PID付き)ps, top
PID / PPIDプロセスID / 親プロセスIDps -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。長時間実行はnohupsystemdで管理。

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 1234PIDに送る。

デーモン / サービス(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捕捉不可。後片付けはTERMHUPで。

終了ステータス(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で一元管理。
  • やさしい停止→強制終了TERMQUIT/HUPKILLの順。
  • リソース上限を前提に:バッチや解析系はCPUQuota/MemoryMaxを必ず設定。
  • 証跡を残す/usr/bin/time -vで実行時間とメモリを計測。

関連リンク(学習ハブ内)

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする