このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】フォアグラウンドとバックグラウンド

フォアグラウンドとバックグラウンドの概要
フォアグラウンドジョブとは
フォアグラウンドジョブは、実行中に端末を占有するジョブです。ユーザーが入力を行い、シェルがその入力に対してすぐに応答する必要がある場合に使用されます。

バックグラウンドジョブとは
バックグラウンドジョブは、実行中に端末を占有しないジョブです。コマンドの末尾に「&」記号を追加して、「Enter」キーを押して実行します。これにより、シェルはすぐにプロンプトを返し、他のコマンドを受け付けることができます。

フォアグラウンドとバックグラウンドの比較表
| 特徴 | フォアグラウンドジョブ | バックグラウンドジョブ |
|---|---|---|
| 実行方法 | コマンドを直接実行 | コマンドの末尾に「&」を付けて実行 |
| 端末の占有 | 占有する | 占有しない |
| ユーザーの入力 | 受け付けない | 受け付ける |
| シェルの動作 | ジョブが終了するまで待機する | ジョブをバックグラウンドで実行し、すぐにプロンプトを返す |
フォアグラウンドの実行例
・「sleep 10」コマンドを実行します。
- このコマンドは10秒間スリープ状態になります。
- 実行中、シェルは他の入力を受け付けず、プロンプトも表示されません。
- 10秒後にジョブが終了し、再びプロンプトが表示されます。
user01@ubuntu-vm:~$ sleep 10バックグラウンドの実行例
・「sleep 60 &」コマンドを実行します。
- このコマンドは60秒間スリープ状態になりますが、バックグラウンドで実行されます。
&を付けることで、シェルはすぐにプロンプトを返し、他のコマンドを受け付けることができます。[1] 3463は、ジョブ番号とプロセスIDを示しています。
user01@ubuntu-vm:~$ sleep 60 &
[1] 3463バックグラウンドジョブの実行を確認するには
バックグラウンドジョブの一覧を表示するためには、jobsコマンドを使用します。
・「jobs」コマンドを実行します。
jobsコマンドは、現在のシェルセッションで実行中のバックグラウンドジョブを一覧表示します。- ジョブ番号とステータス、コマンドが表示されます。
user01@ubuntu-vm:~$ jobs
[1]+ 実行中 sleep 60 &まとめ
フォアグラウンドジョブとバックグラウンドジョブの違いと、それぞれの実行方法について、以下に要点をまとめます。バックグラウンドジョブの状況確認にはjobsコマンドを使用し、実行中のジョブの状態を把握します。
| 特徴 | フォアグラウンドジョブ | バックグラウンドジョブ |
|---|---|---|
| 実行方法 | コマンドを直接実行 | コマンドの末尾に「&」を付けて実行 |
| 端末の占有 | 占有する | 占有しない |
| ユーザーの入力 | 受け付けない | 受け付ける |
| シェルの動作 | ジョブが終了するまで待機する | ジョブをバックグラウンドで実行し、すぐにプロンプトを返す |
