linux bg

linux bg

linux bg

在 Linux 系统中,后台运行是一种常见的操作方式。当我们在终端执行一个命令时,有时候需要将该命令放到后台运行,而不阻塞当前终端的操作。本文将详细介绍 Linux 中的后台运行相关知识。

1. 前台运行与后台运行的区别

在 Linux 终端中,每次执行一个命令时,默认情况下都会阻塞当前终端的操作,直到该命令执行完成或者手动终止。这种方式称为前台运行。而后台运行是指将一个命令放到后台执行,不会阻塞当前终端的操作,可以继续执行其他命令。

前台运行的特点如下:

  • 命令会占用当前终端,直到执行完毕或手动终止。
  • 执行期间,终端无法执行其他命令。
  • 可以使用 Ctrl + C 快捷键来终止当前正在运行的命令。

后台运行的特点如下:

  • 命令会在后台执行,不会占用当前终端。
  • 执行期间,可以继续在终端执行其他命令。
  • 无法使用 Ctrl + C 终止后台运行的命令。
  • 后台运行的命令会有自己的进程 ID (PID),可以使用该 PID 控制和管理命令。

2. 在命令后添加 & 符号实现后台运行

在 Linux 终端中,使用 & 符号可以将命令放到后台运行。具体的操作方式是,在要执行的命令后面添加一个空格和 & 符号。例如,我们要让一个程序以后台运行的方式启动,可以执行以下命令:

$ program_name &

在使用 & 符号进行后台运行时,命令会立即被放到后台执行,而不会等待该命令的执行结果。终端会立即返回一个进程 ID (PID),用于识别该后台运行的命令的进程。

需要注意的是,后台运行的命令输出的结果不会在终端中显示。如果需要查看输出,可以使用输出重定向将结果保存到文件中,或者通过其他方式查看。

3. 通过 Ctrl + Z 将前台运行的命令放到后台运行

除了在命令后添加 & 符号以外,我们还可以使用组合键 Ctrl + Z 来将前台运行的命令放到后台运行。该组合键会将当前正在运行的命令暂停,并返回一个进程 ID (PID)。

使用 Ctrl + Z 将命令放到后台运行的操作步骤如下:

  1. 在命令执行过程中,按下组合键 Ctrl + Z。
  2. 终端会显示一个消息,提示当前命令已经被暂停,并返回一个进程 ID (PID)。

可以使用 bg 命令将一个被暂停的命令放到后台运行。例如:

$ bg %job_id

其中 job_id 是在使用 Ctrl + Z 后返回的进程 ID。

4. 查看后台运行的命令

在 Linux 终端中,我们可以使用 jobs 命令来查看当前终端中正在运行的后台命令。该命令会显示后台运行的命令的状态信息,包括进程 ID (PID) 和命令名称。

执行 jobs 命令会得到类似以下的结果:

$ jobs
[1]-  Running                 command_1 &
[2]+  Stopped                 command_2 &

结果中,每行代表一个后台运行的命令。行首的数字表示该命令的任务 ID (job ID),用于后续操作。行中的 +- 符号表示最近被放到后台或者最后一个被放到后台的命令。

5. 将后台运行的命令调到前台运行

如果我们在后台运行的命令需要调回到前台运行,可以使用 fg 命令。该命令可以将一个后台运行的命令调到前台,并将其放到当前终端。

使用 fg 命令的语法如下:

$ fg %job_id

其中 job_id 是需要调回到前台的命令的任务 ID (job ID)。

6. 结束后台运行的命令

结束后台运行的命令可以使用 kill 命令,该命令可以向指定的进程发送信号,以终止其运行。

使用 kill 命令的基本语法如下:

$ kill [signal_type] PID

其中,signal_type 是信号类型,默认为终止进程。PID 是后台运行命令的进程 ID。

例如,要结束一个名为 command_name 的后台运行命令,可以执行以下命令:

$ kill 9 %job_id

其中 job_id 是要结束的命令的任务 ID,9 是终止信号类型。

7. 示例

下面是一个示例,在 Linux 终端中执行一个后台运行的命令,并通过 jobsfgkill 命令进行相关操作:

$ sleep 1000 &
[1] 12345   # 这里的 job_id 是 1,进程 ID (PID) 是 12345

$ jobs
[1]+  Running                 sleep 1000 &

$ sleep 2000 &
[2] 23456   # 这里的 job_id 是 2,进程 ID (PID) 是 23456

$ jobs
[1]-  Running                 sleep 1000 &
[2]+  Running                 sleep 2000 &

$ fg %2
sleep 2000    # 此步之后,sleep 2000 命令会在前台运行

^C              # 按下 Ctrl + C 终止运行中的命令

$ jobs
[1]-  Running                 sleep 1000 &
[2]+  Exit 130                sleep 2000

$ kill %1
[1]-  Terminate               sleep 1000

在上述示例中,我们首先使用 sleep 命令来创建两个后台进程。通过 jobs 命令可以查看到两个后台进程的状态。然后使用 fg 命令将第二个后台进程调到前台运行,并使用 Ctrl + C 终止该命令。最后使用 kill 命令终止第一个后台进程。

总结

通过本文的介绍,我们了解了 Linux 中的后台运行相关知识。我们可以使用 & 符号将命令放到后台运行,使用 Ctrl + Z 将前台运行的命令放到后台运行,以及如何查看、调到前台和结束后台运行的命令。

后台运行可以提高终端的使用效率,让我们能够同时执行多个命令。无论是通过在命令后面添加 & 符号还是使用 Ctrl + Z,后台运行都是非常方便和实用的操作方式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程