创作

如何在Linux中使用前台和后台进程

[复制链接]
在使用Linux进程时要理解的一个重要概念是什么是前台和后台进程以及如何对其进行控制。在Linux中,如果执行任何程序,则将使用唯一的ID(PID)创建一个进程,并且默认情况下,该进程在前台运行。
让我们看一个简单的curl命令:当您通过Internet发送下载zip文件的请求时,curl将作为前台进程运行,并且所有输出都将显示在终端中。
在使用后台进程和前台进程之前,您必须了解两个重要的击键。
CTRL + Z – 此键将停止正在运行的进程。
CTRL + C – 此击键将终止正在运行的进程并释放RAM中的内存。
1、Linux 前台进程
默认情况下,从终端启动时的进程将作为前台进程运行。前台进程不会允许你使用终端,除非该过程完成。在这种情况下,如果您需要访问终端,则必须打开一个新的终端窗口或停止正在运行的进程或将其终止。
同样重要的是要注意,通过终端创建的任何进程都将附加到终端会话,并且一旦终端关闭,该进程将终止。这是因为bash是父进程,并且您在终端中运行的任何命令都将成为bash的子进程,因此当您关闭终端时,父进程(bash)将自动终止其所有子进程及其自身的子进程。
以下是前台流程的示例。这只是一个简单的sleep命令,仅在完成后才会将提示返回给用户。
$ sleep 10000
现在,我有几种选择可以控制返回到终端提示符。我必须取消或停止该过程,或者打开一个新的终端选项卡。通过按(CTRL + Z)停止正在运行的进程时,将获得输出,如下图所示。
1.png
要获取处于运行或已停止状态的作业列表,可以运行以下命令。
$ jobs -l
2.png
从上面的图像中,您可以看到jobs命令为您提供了进程ID,您提交的命令,它的状态是什么。您还将为提交的每个过程([1],[2] [3]等)获得一个工作ID。
要启动处于停止状态的作业或将后台作业带到前台,请运行以下命令。
$ fg %4      
其中%4表示您可以从“ jobs -l”命令获得的作业ID。
3.png
2、Linux后台进程
后台进程在后台运行您的进程,并且不会控制您的终端提示。您可以开始会话,并且可以自由使用终端。要将命令提交为后台进程,您必须&在命令末尾添加符号。
$ sleep 50000 &
4.png
运行作业命令以获取作业列表。
$ jobs -l
在下面的图像中,您可以看到作业ID [5]被分配给该作业,并且&符号表明该作业已提交并作为后台作业运行。
5.png
您可以通过运行以下命令直接在后台启动任何已停止的作业。
$ bg %2
其中%2表示您可以从“ jobs -l ”命令获取的作业ID 。
6.png
本文简单介绍了如何在Linux中使用前台和后台进程,希望对您有所帮助。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2019 Comsenz Inc.  Powered by Discuz! X3.4  渝ICP备17007481号-6