新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 シグナル名または番号特定のシグナルを送信
-9SIGKILL(強制終了)シグナルを送信

使用例

[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でのジョブ操作とプロセス制御を理解すれば、
複数の作業をスムーズにこなせる“できるエンジニア”に近づけます😉