Categories: linux

【Linux入門】停止中のジョブをバックグラウンドで再開する「bg」コマンドの使い方とは?

Linuxを使って作業をしていると、意図せずジョブ(プロセス)を停止させてしまったり、一時的に作業を中断したいシーンがあります。そんなときに便利なのが、ジョブをバックグラウンドで再開させる「bg」コマンドです。このコマンドを知っておくことで、作業の効率を落とさず、端末の操作をスムーズに進めることができます。
本記事では、bgコマンドの基本的な使い方から、ジョブ管理の流れ、実際の使用例までをわかりやすく解説します。Linux初心者の方にも理解しやすいよう、やさしい言葉でまとめていますので、ぜひ参考にしてみてください。


bgコマンドとは?

bgとは「background(バックグラウンド)」の略で、現在停止中(suspended)のジョブをバックグラウンドで再開させるためのコマンドです。Linuxでは、ジョブをフォアグラウンドとバックグラウンドで管理でき、bgはその管理の中でも「停止中のジョブを裏で動かし続ける」ために使われます。

たとえば、作業中に誤って Ctrl + Z を押してしまった場合、そのジョブは「停止状態」になりますが、bgコマンドを使えば再度バックグラウンドで動作を再開できます。


ジョブとは何か?

Linuxでは、ターミナル上で起動される各コマンドやプロセスを「ジョブ」として管理します。ジョブには以下のような状態があります:

  • フォアグラウンド(Foreground):ユーザーの端末上で直接操作されている状態
  • バックグラウンド(Background):裏で動いている状態。端末は他の操作が可能
  • 停止状態(Stopped):一時停止している状態(Ctrl + Z で停止)

ジョブの状態を確認するには、jobs コマンドを使います。

$ jobs
[1]+ Stopped sleep 100

このように、sleep 100 というジョブが停止しているのがわかります。


bgコマンドの基本的な使い方

最も基本的な使用方法

bg

何も引数をつけずに bg を実行すると、直前に停止したジョブがバックグラウンドで再開されます。

$ sleep 100
^Z
[1]+ Stopped sleep 100
$ bg
[1]+ sleep 100 &

このように、sleep 100 がバックグラウンドで再開されました。

特定のジョブを指定して再開する

複数のジョブがある場合は、ジョブ番号を明示して再開することができます。

bg %1

ジョブ番号の前には % を付けます。jobs コマンドで番号を確認してから使うのが一般的です。

$ jobs
[1]- Stopped find / -name "*.log"
[2]+ Stopped tail -f /var/log/syslog
$ bg %2
[2]+ tail -f /var/log/syslog &

bgコマンドの使用例

例1:長時間の処理を中断して他の作業をしたいとき

$ find / -name "*.log"
^Z
[1]+ Stopped find / -name "*.log"
$ bg
[1]+ find / -name "*.log" &

findコマンドが重い処理をしているとき、いったん停止して、裏で動かしながら別の操作をすることができます。

例2:複数ジョブを切り替えながら作業する

$ tail -f /var/log/syslog
^Z
[1]+ Stopped tail -f /var/log/syslog
$ top
^Z
[2]+ Stopped top
$ bg %1
[1]+ tail -f /var/log/syslog &
$ fg %2
top

このように、fgbg を組み合わせて、ジョブを前面・背面で自由に切り替えることができます。


よく使う関連コマンド

jobs:ジョブ一覧を表示

現在のシェルで管理されているジョブの状態を表示します。

$ jobs
[1]- Running tail -f /var/log/syslog &
[2]+ Stopped top

fg:フォアグラウンドに切り替える

停止中またはバックグラウンドで実行中のジョブを、再びフォアグラウンドで操作するためのコマンドです。

$ fg %2

kill:ジョブの強制終了

バックグラウンドジョブを終了させたいときは kill を使います。

$ kill %1

プロセスIDを使っても終了できますが、ジョブ番号に % を付けて使うと便利です。


bgコマンドが使えないケースとは?

以下のようなケースでは bg が使えません:

  • 停止中のジョブが存在しないとき
  • ジョブがすでにバックグラウンドで実行中の場合
  • シェルがジョブ制御をサポートしていない場合(スクリプト内や一部の非対話シェルなど)

その場合は、エラーメッセージが表示されます:

$ bg
bash: bg: current: no such job

bgコマンドを活用するメリット

  • 処理を一時停止しても、そのまま再開できるため、効率的に作業ができる
  • 長時間処理やログ監視をバックグラウンドに回すことで、端末を占有せずに済む
  • fgjobsと組み合わせることで、柔軟なターミナル操作が可能になる

特にサーバー管理や開発作業など、複数のタスクを並行して行うシーンではとても重宝します。


まとめ

bgコマンドは、Linuxのターミナルで効率よく作業するために欠かせないツールのひとつです。停止中のジョブをバックグラウンドで再開させることで、作業を中断することなくスムーズに操作を続けることができます。jobsfgkillといった他のコマンドとあわせて使うことで、さらに柔軟なジョブ管理が可能になります。

Linuxの基本的なコマンドのひとつである「bg」をぜひマスターして、日々のターミナル操作をもっと快適にしていきましょう。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。