bg 命令

用途

在后台运行作业。

语法

bg [ JobID ...]

描述

如果启用了作业控制 (请参阅 操作系统和设备管理中的 "Korn shell 程序中的作业控制或 POSIX shell" ) , bg 命令通过将暂挂的作业作为后台作业运行来恢复当前环境中的这些作业。 如果指定的作业已经在后台运行,bg 命令不起作用并成功退出。 如果未提供 JobID 参数, bg 命令会使用最近暂挂的作业。

JobID 参数可以是进程的标识号,或者您可以使用如下的符号组合:

描述
%数字 通过作业编号引用作业。
%字符串 引用名称以特定字符串开头的作业。
%?String 引用名称中包含特定字符串的作业。
% +%% 引用当前作业。
%- 引用前一个作业。

使用 bg 命令将作业放入后台,使该作业的进程标识在当前 shell 环境中被知晓。 bg 命令输出显示作业号和与该作业相关的命令。 作业号可与 waitfgkill 命令一起使用,只要在作业号前加上 %(百分号)前缀。 例如:kill %3

使用 Ctrl-Z 按键顺序就可以暂挂作业。 使用 bg 命令就可在后台重新启动该作业。 当作业无需终端输入且作业输出被重定向至非终端文件时,这么做是有效的。 如果后台作业具有终端输出,可输入以下命令强制停止该作业:
stty tostop
输入以下命令可停止后台作业:
kill -s stop JobID
/usr/bin/bg 命令在自己的命令执行环境中操作时无效,因为该环境没有可处理的暂挂作业。 以下示例中正是这种情况:
Command | xargs bg

每个 /usr/bin/bg 命令在不同环境中运行并且无法共享父 shell 的作业理解。 由于此原因,bg 命令作为 korn shell 程序或 POSIX shell(经常是内置的)实行。

退出状态

返回以下退出值:

描述
重大安全事件数量 成功完成。
> 0 发生错误。

如果禁用作业控制,bg 命令会在发生错误的情况下退出,并且没有作业被放至后台。

示例

如果 jobs 命令的输出显示以下已停止的作业:
[2] + Stopped (SIGSTOP)  sleep 100 &

使用作业号来恢复sleep 100 &通过输入以下命令作业:

bg %2

屏幕显示作业的修订状态2:

[2] sleep 100 &

文件

描述
/usr/bin/ksh 包含 Korn Shell 程序 bg 内置命令。
/usr/bin/bg 包含 bg 命令。