管理后台作业

我们可以使用 jobs 命令列出当前正在运行或者在后台暂停的作业。

$ jobs
[1]+  Running                 sleep 100 &

我们可以使用 fg 命令将后台作业带到前台。

$ fg % 1
sleep 100

我们可以使用 'Control+Z 键和 bg 命令将作业返回到后台。
Control+Z 键暂停作业,并将其作为已停止的作业置于后台。
bg 命令在后台运行作业。
例如:

  1. 使用 CTRL+Z
$ sleep 100
^Z
[1]+  Stopped                 sleep 100
$ jobs
[1]+  Stopped                 sleep 100
  1. 使用bg 将任务置于后台
$ bg % 1
[1]+ sleep 100 &
$ jobs
[1]+  Running                 sleep 100 &

注意:当我们将停止的作业放置在前台或者后台时,作业会重新启动。

Linux 中的作业控制命令 - bg、fg 和 CTRL+Z
更多: zhilu jiaocheng

在后台运行作业

要在后台运行作业,我们需要输入要运行的命令,并在命令行末尾输入与号 (&) 符号。
例如,在后台运行 sleep 命令。

$ sleep 100 & 
[1] 1302
$

Shell 在括号中返回作业 ID,它分配给命令和关联的 PID。
通过作业 ID,我们可以使用作业控制命令来管理作业,而内核使用 PID 来管理作业。

当后台作业完成并按下 Return 键时,shell 会显示一条消息,指示作业已完成。

[1] + Done         sleep 100 &
$

作业控制命令

作业控制命令使我们能够将作业置于前台或者后台,以及启动或者停止作业。
该表描述了作业控制命令。

选项描述
jobs列出所有工作
bg %n将当前或者指定的作业置于后台,其中 n 是作业 ID
fg %n将当前或者指定的作业带入前台,其中 n 是作业 ID
Control-Z停止前台作业并将其作为停止作业放置在后台

什么是 Linux 的作业(job)

任务(job)是shell管理的进程。
每个作业都分配有一个顺序作业 ID。
因为作业是一个进程,所以每个作业都有一个关联的 PID。
有三种类型的工作状态:

  1. Foreground(处于前台):当我们在终端窗口中输入命令时,该命令会占用该终端窗口,直到完成为止。
    这是一个前台工作。

  2. Background(处于后台):当我们在命令行末尾输入与号 (&) 符号时,该命令将在不占用终端窗口的情况下运行。
    按下 Return 键后会立即显示 shell 提示。
    这是后台作业的示例。

  3. Stopped(停止):如果我们为前台作业按 Control + Z,或者为后台作业输入停止命令,作业将停止。
    此作业称为已停止作业。

日期:2020-09-17 00:14:33 来源:oir作者:oir