このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】ジョブの遷移:bgコマンドとfgコマンド

ジョブの遷移に関する解説
Linuxシステムにおいて、ジョブの管理は重要なスキルの一つです。特に、シェル上で複数のタスクを効率的に実行・管理するためには、ジョブの遷移に関する理解が不可欠です。ジョブはフォアグラウンド(前面)とバックグラウンド(背景)の2つのモードで実行されることがあり、状況に応じてこれらのモード間でジョブを遷移させることができます。

jobsコマンド
jobsコマンドは現在シェルで管理されているジョブのリストを表示します。表示される情報には、ジョブの状態(実行中、停止中、終了)とジョブ番号が含まれます。
| 状態 | 説明 |
|---|---|
| Running(実行中) | ジョブが実行中です。 |
| Stopped(停止中) | ジョブが一時停止されています。 |
| Terminated(終了) | ジョブが終了しました(一度だけ表示されます)。 |
ジョブの遷移
ジョブはフォアグラウンド(前面)またはバックグラウンド(背景)で実行させることができます。以下にその遷移方法をまとめます。

| 操作 | 説明 |
|---|---|
| フォアグラウンド実行 | コマンドをそのまま実行すると、ジョブはフォアグラウンドで実行されます。 |
| バックグラウンド実行 | コマンドの末尾に「&」を付けると、ジョブはバックグラウンドで実行されます。 |
| フォアグラウンド → 停止 | 「Ctrl」+「Z」キーを押すと、フォアグラウンドジョブが停止します。 |
| 停止 → バックグラウンド | bgコマンドを実行すると、停止中のジョブがバックグラウンドで再開されます。 |
| バックグラウンド → フォアグラウンド | fgコマンドを実行すると、バックグラウンドジョブがフォアグラウンドで再開されます。 |
| ジョブの終了 | フォアグラウンドジョブは「Ctrl」+「C」キー、バックグラウンドジョブや停止中のジョブはkillコマンドで終了します。 |
bgコマンド
bgコマンドは停止中のジョブをバックグラウンドで実行するためのコマンドです。
【構文】bg ジョブ番号
bg ジョブ番号fgコマンド
fgコマンドはバックグラウンドジョブをフォアグラウンドに戻すためのコマンドです。
【構文】fg ジョブ番号
fg ジョブ番号ジョブの状態遷移の例
1.フォアグラウンド実行
・「sleep 1000」コマンドを実行します。
フォアグラウンドでsleepコマンドを実行します。
user01@ubuntu-vm:~$ sleep 10002.フォアグラウンドジョブを停止
「Ctrl」+「Z」キーを押します。
フォアグラウンドで実行されているsleepジョブを停止します。
^Z # Ctrl」+「Z」キーを押す
[1]+ 停止 sleep 10003.停止中のジョブをバックグラウンドで再開
・「bg 1」コマンドを実行します。
停止中のsleepジョブをバックグラウンドで再開します。bgコマンドにジョブ番号を指定します。
user01@ubuntu-vm:~$ bg 1
[1]+ sleep 1000 &4.バックグラウンドジョブをフォアグラウンドに戻す。
・「fg 1」コマンドを実行します。
fgコマンドにジョブ番号を指定して、バックグラウンドで実行されているsleepジョブをフォアグラウンドに戻します。
user01@ubuntu-vm:~$ fg 1
sleep 10005.フォアグラウンドジョブを停止
「Ctrl」+「Z」キーを押します。
フォアグラウンドで実行されているsleepジョブを停止します。
^Z # Ctrl」+「Z」キーを押す
[1]+ 停止 sleep 10006.停止中のジョブを終了
・「kill %1」コマンドを実行します。
killコマンドにジョブ番号を指定して、バックグラウンドで実行されているsleepジョブを終了させます。
user01@ubuntu-vm:~$ kill %1
[1]+ 停止 sleep 1000まとめ
jobsコマンドはジョブの状態を確認するために使用します。bgコマンドとfgコマンドを使用して、ジョブをバックグラウンドやフォアグラウンドに切り替えることができます。- フォアグラウンドジョブを終了するには
「Ctrl」+「C」キー、バックグラウンドジョブや停止中のジョブを終了するにはkillコマンドを使用します。
このように、シェルでジョブを管理することで、効率的に複数のタスクを処理することができます。
