
新Linux入門|プロセスとジョブの仕組みと管理の基礎
Linuxを使っていると、「プロセス」や「ジョブ」という言葉をよく聞きますよね。
どちらも「実行中の処理」に関係する言葉ですが、実は少し意味が違うんです。
この記事では、プロセスとジョブの違いや関係性、
そしてそれらを管理するための基本コマンドをやさしく解説します💪

⚙️ プロセスとは?
プロセス(Process)は、コンピュータ上で実行されているプログラムの実体です。
たとえば、ターミナルで ls コマンドを実行すると、その瞬間に「lsプロセス」が作られて動き出します。
プロセスは、CPU時間・メモリ・ファイルディスクリプタなどのリソースを使って動作します。
そしてOS(Linuxカーネル)が、プロセスの生成・実行・終了を管理します。
| 項目 | 説明 |
|---|---|
| 意味 | 実行中のプログラムの実体 |
| 識別子 | プロセスID(PID)で一意に識別される。 |
| 管理者 | Linuxカーネルが生成・監視・終了を管理 |
| 構成要素 | 実行コード、スタック、データ領域、ファイルハンドルなど |
📘 プロセスの確認コマンド(ps)
プロセスの一覧を確認するには、ps コマンドを使います。
[root@AlmaLinux ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 11月28 ? 00:00:00 /usr/lib/systemd/systemd --switched-root --system --
root 2 0 0 11月28 ? 00:00:00 [kthreadd]
root 3 2 0 11月28 ? 00:00:00 [pool_workqueue_]
root 4 2 0 11月28 ? 00:00:00 [kworker/R-rcu_g]
root 5 2 0 11月28 ? 00:00:00 [kworker/R-sync_]
(省略)| オプション | 説明 |
|---|---|
| -e | すべてのプロセスを表示 |
| -f | 詳細情報を表示(親子関係や起動コマンドなど) |
| -u ユーザー名 | 特定ユーザーのプロセスだけを表示 |
💬ポイント
PID(プロセスID)は一意の番号で、PPID(親プロセスID)はそのプロセスを作ったプロセスを示します。
🧠 ジョブとは?
ジョブ(Job)とは、シェルが管理する1つ以上のプロセスのまとまりのことです。
シェル(bashなど)は、コマンドを実行するたびに「ジョブ」を作り、その中でプロセスを動かします。
ジョブは、次の2つのモードで実行されます👇
| 実行モード | 説明 |
|---|---|
| フォアグラウンドジョブ | 実行中はシェルが操作できなくなる(完了を待つ) |
| バックグラウンドジョブ | シェルの操作を妨げず、裏で実行を続ける。 |
💡ポイント
バックグラウンド実行はコマンドの末尾に & をつけます。
使用例
[suzuki@AlmaLinux ~]$ sleep 60 &
[1] 2185ここで [1] はジョブ番号、2185 はプロセスID(PID)です。
sleep 60 は60秒間スリープするコマンドですが、& をつけることでバックグラウンド実行されました🎵
🔍 ジョブの確認と制御コマンド
ジョブはシェルが管理しているため、専用のコマンドで制御できます。
jobsコマンド(ジョブの一覧表示)
[suzuki@AlmaLinux ~]$ jobs
[1]+ Running sleep 60 &fgコマンド(ジョブをフォアグラウンドに戻す)
[suzuki@AlmaLinux ~]$ fg %1
sleep 60💬 %1 はジョブ番号を意味します。これでジョブがフォアグラウンドに切り替わります。
bgコマンド(ジョブをバックグラウンドで再開)
[suzuki@AlmaLinux ~]$ bg %1
[1]+ sleep 60 &💬 Ctrl+Z で一時停止したジョブを再びバックグラウンドで動かしたいときに使います。
🔄 プロセスとジョブの関係
プロセスとジョブの関係は「1対多」で表せます。
1つのジョブには、1つ以上のプロセスが含まれます。
パイプ( | )で複数コマンドをつなげた場合、それぞれが独立したプロセスとして同じジョブ内で動作します。
例
[suzuki@AlmaLinux ~]$ ps aux | grep bash | wc -l &
[1] 2210💬ポイント
このジョブでは、ps → grep → wc の3つのプロセスが連携して動作しています。
シェルから見ると、これらは「1つのジョブ(Job 1)」として管理されます。
| 概念 | 管理対象 | 管理者 | 実行単位 |
|---|---|---|---|
| プロセス | 実行中の1つのプログラム | Linuxカーネル | 個々の処理単位 |
| ジョブ | 1つ以上のプロセスの集まり | シェル(bashなど) | 作業単位(ユーザーが制御) |
🧰 よく使うジョブ・プロセス管理コマンドまとめ
| コマンド | 用途 |
|---|---|
| ps | プロセス一覧を表示 |
| jobs | シェルで実行中のジョブを一覧表示 |
| fg | ジョブをフォアグラウンドに戻す。 |
| bg | ジョブをバックグラウンドで再開する。 |
| kill | プロセスを終了させる(PIDまたはジョブ番号指定) |
| pstree | プロセスの親子関係をツリー表示 |
| top | 実行中のプロセスをリアルタイムで監視 |
killコマンドの例
[suzuki@AlmaLinux ~]$ kill %1💬ポイント
%1 はジョブ番号を意味し、このジョブに属するすべてのプロセスを終了します。
🌈 まとめ
- プロセス は、実行中の1つのプログラムのこと。
- ジョブ は、シェルが管理する「プロセスの集合体」。
- jobs・fg・bg・kill コマンドで、ジョブを簡単に制御できる。
- OS(カーネル)はプロセスを、シェルはジョブを管理する役割を持っている。
この2つの仕組みを理解すると、Linuxでのタスク制御がぐっとわかりやすくなります✨
次回は、ジョブ制御の実践編(Ctrl+Zやnohupなど) に進んでみましょう!
