このページで解説している内容は、以下の 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コマンドを使用し、実行中のジョブの状態を把握します。

特徴フォアグラウンドジョブバックグラウンドジョブ
実行方法コマンドを直接実行コマンドの末尾に「&」を付けて実行
端末の占有占有する占有しない
ユーザーの入力受け付けない受け付ける
シェルの動作ジョブが終了するまで待機するジョブをバックグラウンドで実行し、すぐにプロンプトを返す
まとめ