
新Linux入門|ジョブ操作とプロセス制御の基本
Linuxで作業をしていると、「処理が終わるまで次のコマンドが入力できない💦」とか「長時間の処理を裏で進めたい!」と感じたことはありませんか?
そんなときに役立つのが、ジョブ操作(Job Control) と プロセス制御(Process Control) の仕組みです✨
この記事では、ジョブを操作・制御する基本コマンド(jobs、fg、bg、kill など) の使い方をわかりやすく解説します。
フォアグラウンドとバックグラウンドの違いから、一時停止・再開・終了までの流れをしっかり理解しましょう💪

⚙️ ジョブとは何か?
Linuxでは、コマンドを実行すると「ジョブ(job)」という単位で扱われます。
ジョブは、ユーザーが起動した処理のひとまとまりを指します。
1つのコマンドでもジョブですが、パイプ( | )でつながった複数のコマンドも1つのジョブとして扱われます。
| 用語 | 説明 | 例 |
|---|---|---|
| ジョブ(job) | ユーザー視点で見た「処理の単位」 | sleep 10 & など |
| プロセス(process) | OSが管理する実行中のプログラム | ジョブの内部で動く単位 |
| PID(Process ID) | プロセスに割り当てられる一意の番号 | killコマンドなどで使用 |
💬ポイント
ジョブを理解すると、ターミナルを効率よく操作できるようになります。
特に長時間かかる処理では、「裏で実行しながら別の作業を進める」ことが可能になります✨
🎛️ フォアグラウンドとバックグラウンド
Linuxでコマンドを実行する際には、フォアグラウンド または バックグラウンド のどちらかで動作します。
| 実行形態 | 説明 | 実行例 |
|---|---|---|
| フォアグラウンド | コマンドを実行している間は他の操作ができない。 | sleep 10 |
| バックグラウンド | コマンドを裏で実行し、他の作業を並行して行える。 | sleep 10 & |
🖥️ フォアグラウンド実行の例
[suzuki@AlmaLinux ~]$ sleep 10➡ この場合、10秒間は待機中で他のコマンドを打てません。
🌙 バックグラウンド実行の例
[suzuki@AlmaLinux ~]$ sleep 10 &
[1] 12345➡ 「[1]」はジョブ番号、「12345」はプロセスID(PID)です。
この間も、別の作業を続けることができます✨
🧾 jobsコマンド:ジョブの一覧表示
実行中または停止中のジョブを確認するには jobsコマンド を使います。
コマンド書式
jobs [オプション]主なオプション
| オプション | 説明 |
|---|---|
| -l | プロセスID(PID)も表示 |
| -r | 実行中のジョブのみ表示 |
| -s | 停止中のジョブのみ表示 |
使用例
[suzuki@AlmaLinux ~]$ jobs -l
[1]+ 12345 Running sleep 10 &💬ポイント
Running は実行中、Stopped は一時停止中を意味します。
🔄 fgコマンド:ジョブをフォアグラウンドに戻す
バックグラウンドで実行中のジョブを前面で再開したいときに使うのが fgコマンド です。
コマンド書式
fg [%ジョブ番号]使用例
[suzuki@AlmaLinux ~]$ fg %1
sleep 10➡ ジョブ1番をフォアグラウンドに移動し、端末を占有して実行します。
🔁 bgコマンド:ジョブをバックグラウンドに移行
フォアグラウンドで一時停止中のジョブを、バックグラウンドで再開するときに使うのが bgコマンド です。
コマンド書式
bg [%ジョブ番号]使用例
[suzuki@AlmaLinux ~]$ sleep 60
^Z
[1]+ Stopped sleep 60
[suzuki@AlmaLinux ~]$ bg %1
[1]+ sleep 60 &💡ポイント
「Ctrl + Z」でジョブを一時停止させたあとに、bg で再開させるのが基本的な流れです。
🧨 killコマンド:ジョブやプロセスを終了する
不要になったジョブを終了させるときは killコマンド を使います。
ジョブ番号(例:%1)またはプロセスID(PID)を指定します。
コマンド書式
kill [オプション] [PIDまたは%ジョブ番号]主なオプション
| オプション | 説明 |
|---|---|
| -l | 利用可能なシグナル一覧を表示 |
| -s シグナル名または番号 | 特定のシグナルを送信 |
| -9 | SIGKILL(強制終了)シグナルを送信 |
使用例
[suzuki@AlmaLinux ~]$ jobs
[1]+ Running sleep 100 &
[suzuki@AlmaLinux ~]$ kill %1
[1]+ Terminated sleep 100💬ポイント
プロセスが応答しない場合は、kill -9 で強制終了できますが、リソースが正しく解放されないこともあるので注意⚠️
🧠 ジョブ制御の流れ(まとめ)
| 操作内容 | コマンド | 補足説明 |
|---|---|---|
| フォアグラウンドで実行 | コマンド | 他の操作ができない |
| バックグラウンドで実行 | コマンド & | 他の操作と並行実行 |
| 一時停止 | Ctrl + Z | 実行中ジョブを停止 |
| 再開(バックグラウンド) | bg %ジョブ番号 | 停止ジョブを裏で再開 |
| 再開(フォアグラウンド) | fg %ジョブ番号 | 停止ジョブを前面で再開 |
| 実行中ジョブの確認 | jobs | 状態・ジョブ番号確認 |
| ジョブの終了 | kill %ジョブ番号 | 安全終了 or 強制終了 |
💬ポイント
この表の流れを覚えておくと、ジョブ操作の全体像がスッキリ理解できます✨
🌈 まとめ
- ジョブとは、ユーザーが実行する処理の単位。
- フォアグラウンドとバックグラウンドを使い分けることで、効率よく作業できる。
- jobs / fg / bg / kill を組み合わせて操作すれば、ジョブの実行状態を自在にコントロールできる✨
Linuxでのジョブ操作とプロセス制御を理解すれば、
複数の作業をスムーズにこなせる“できるエンジニア”に近づけます😉
