bg は、Ctrl+Z などで停止(Stopped)したジョブをバックグラウンド実行として再開するシェル組み込みコマンドです。
実務では jobs で対象を確認し、bg %N で裏で走らせながら手元のシェル操作を継続します。
構文(Syntax)
# POSIX / Bash / Zsh(シェル組み込み)
bg [JOBSPEC...]
JOBSPEC例:%1(ジョブ番号1),%+(カレント),%-(前のジョブ),%vim(先頭一致),%?python(部分一致)- 省略時は カレントジョブ(
%+) を再開します。
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
| (なし) | 停止中ジョブをBGで再開 | bg |
JOBSPEC | 対象ジョブを明示して再開(複数可) | bg %1 %2 |
bg自体に汎用オプションはありません(シェルにより細部の挙動差はあり)。
実行例
基本:停止 → 裏で再開
説明: vim を一時停止して裏で再開します。
コマンド:
vim README.md
# (編集中に Ctrl+Z で停止)
jobs # 状態確認(Stopped)
bg # カレントジョブをバックグラウンドで再開
出力例(例):
[1]+ Stopped vim README.md
[1]+ vim README.md &
複数ジョブをまとめて再開
説明: 停止中のジョブ番号を指定して複数同時に再開します。
コマンド:
sleep 100 &; sleep 200 & # バックグラウンド開始
kill -STOP %1 %2 # (デモ用)両方を停止
jobs -s
bg %1 %2
出力例(例):
[1]- Stopped sleep 100
[2]+ Stopped sleep 200
[1]- sleep 100 &
[2]+ sleep 200 &
文字列で対象を選んで再開
説明: コマンド行に python を含むジョブを検索して再開します。
コマンド:
python long_task.py
# Ctrl+Z
bg %?python
パイプラインを停止してから裏で継続
説明: パイプ全体が1つのジョブです。
コマンド:
yes | pv -L 1m | gzip > out.gz
# Ctrl+Z で停止
bg
jobs
出力例(例):
[1]+ yes | pv -L 1m | gzip > out.gz &
エラー例:ジョブ制御が無効/該当ジョブなし
説明: 非対話シェルではジョブ制御がなく失敗、存在しない番号もエラーです。
コマンド:
bash -c 'bg'
bg %9
出力例(例):
bash: bg: job control not enabled
bash: bg: %9: no such job
関連コマンド
jobs: 現在のシェルが管理するジョブ一覧を表示。fg: 指定ジョブをフォアグラウンドに戻す。kill: ジョブ/プロセスへシグナル送信(kill -STOP %1,kill -CONT %1など)。disown(Bash/Zsh) : ジョブをシェルの管理から外す(ログアウト後も継続させたい場合)。wait: 指定ジョブ/プロセスの終了を待つ。nohup: ログアウト時のSIGHUPを無視して実行。
備考
- シェル組み込み:
bgは外部コマンドではなく、現在のシェルにだけ効果があります。別の端末・サブシェル・sudoで起動したシェルには影響しません。 - ジョブ制御が必要: 端末を持つ対話シェルで有効(Bashなら通常有効)。スクリプトで使う場合は
set -m(モニターモード)が必要になることがあります。 - 信号とI/O: 停止中ジョブは
SIGCONTで再開されます。バックグラウンドジョブが標準入力を読むとSIGTTINで再停止するため、必要に応じてリダイレクトしてください(例:cmd < /dev/null &)。 - 終了・ログアウト時: バックグラウンドジョブはシェル終了時に
SIGHUPを受けるのが一般的です。継続させたい場合はdisown -hやnohupを利用します。 - 優先度/資源:
bgは優先度(niceness)を変えません。負荷制御が必要ならnice/reniceを併用します。
参考
- POSIX
bg仕様(The Open Group): https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bg.html - GNU Bash マニュアル(Job Control Builtins /
bg): https://www.gnu.org/software/bash/manual/bash.html#Job-Control-Builtins - Zsh ドキュメント(Jobs & Signals /
bg): https://zsh.sourceforge.io/Doc/Release/Jobs-_0026-Signals.html

コメント