はじめに
Linuxを使っていると、こんな経験ありませんか?
-
コマンド実行したら終わらなくて、ターミナルが固まった
-
「この処理、裏で動かしながら別の作業したい」
-
Ctrl + Z押したけど、その後どうすればいいか分からない
そんなときに使うのが、
-
& -
jobs -
fg -
bg
いわゆる バックグラウンド実行 周りのコマンドです。
正直、
地味だけど覚えてない人が多い 分野。
この記事では、
-
バックグラウンド実行とは何か
-
&の意味 -
jobsは何を見ているのか -
実務での使いどころ
を、初心者向けに整理します。
バックグラウンド実行とは?
まず考え方から。
通常、Linuxでコマンドを実行すると、
この60秒間、
ターミナルはそのコマンドに占有されます。
これを フォアグラウンド実行 と呼びます。
一方、
ターミナルを占有せず、裏でコマンドを動かす
これが バックグラウンド実行 です。
& の意味とは?
バックグラウンド実行で一番よく使うのが &。
これを実行すると、
-
コマンドは裏で動き続ける
-
ターミナルはすぐ操作可能になる
という状態になります。
& がやっていること
& は一言で言うと、
このコマンドをバックグラウンドで実行する
という指示。
特別なコマンドではなく、
シェルへの命令 です。
バックグラウンド実行すると何が起きる?
を実行すると、こんな表示が出ます。
これは、
-
[1]→ ジョブ番号 -
12345→ プロセスID(PID)
を意味しています。
👉
ここでいう「ジョブ」が重要 になります。
jobsコマンドとは?
これは何を見ているコマンドなのか。
答えはこれ。
今のシェルで管理している「ジョブ一覧」を表示する
jobsが見ているもの
-
バックグラウンド実行したコマンド
-
Ctrl + Zで停止したコマンド
👉
システム全体のプロセスではない
という点が重要。
(ps とは別物)
jobsの表示例
-
[1]:ジョブ番号 -
Running:実行中 -
sleep 60 &:実行したコマンド
Ctrl + Z は「終了」ではない
実行中に
を押すと、
-
コマンドは 停止(中断)
-
終了はしていない
状態になります。
この状態のジョブも jobs で確認できます。
fgとは何をするコマンド?
これは、
バックグラウンド or 停止中のジョブを、再びフォアグラウンドに戻す
コマンド。
例
-
%1→ ジョブ番号1番
これで、そのジョブが再びターミナルを占有します。
bgとは何をするコマンド?
これは、
停止中のジョブを、バックグラウンドで再開する
コマンドです。
例
-
Ctrl + Zで止めたジョブを -
裏で再開する
という動き。
fg / bg / jobs の関係まとめ
| 操作 | 意味 |
|---|---|
& |
最初からバックグラウンド実行 |
Ctrl + Z |
一時停止 |
jobs |
ジョブ一覧を見る |
fg |
フォアグラウンドに戻す |
bg |
バックグラウンドで再開 |
実務での使いどころ
① 処理が長いコマンドを裏で回したい
-
ビルドを裏で回しつつ
-
別の確認作業をしたい時
② 間違えて重いコマンドを実行した時
-
うっかり実行した処理を
-
裏に回してターミナルを解放
③ ログ監視を一時的に止めたい
-
状況確認後に
fgで復帰
なぜこの分野が覚えづらいのか
理由はシンプルで、
-
使う頻度がそこまで高くない
-
プロセスとジョブの違いが分かりづらい
-
暗記するとすぐ忘れる
でも一度、
「ジョブ=今のシェルが管理している作業」
と理解すると、一気に整理できます。
まとめ
-
バックグラウンド実行は「裏で処理を動かす」仕組み
-
&は最初から裏で実行する指示 -
jobsはシェルが管理しているジョブ一覧を見る -
fgは前面に戻す -
bgは裏で再開する -
実務でも地味に出番が多い
覚えていなくても困らないけど、
知っていると作業効率が確実に上がる。
そんなポジションの記事です。


コメント