在后台和前台中运行Linux命令
如果任务很长,那么等待它完成并不总是明智的。
我的意思是为什么要保留终端以执行特定命令?
在Linux中,我们可以将命令或者进程发送到后台,以便该命令可以运行,但是终端可以自由运行其他命令。
在本教程中,将介绍几种在后台发送流程的方法。
我还将向我们展示如何使后台进程恢复到前台。
直接在后台启动Linux进程
如果我们知道该命令或者过程将花费很长时间,则最好在后台启动该命令。
要在后台运行Linux命令,我们所要做的就是在命令末尾添加&符号,如下所示:
your_command &
让我们接受一个简单的bash sleep命令,并将其发送到后台。
sleep 60 &
当命令在后台完成时,我们应该在终端上看到有关该命令的信息。
[1]+ Done sleep 60
将正在运行的Linux进程发送到后台
如果我们已经运行了程序,然后意识到应该在后台运行它,请不要担心。
我们也可以将正在运行的进程发送到后台。
我们要做的是使用Ctrl + Z暂停正在运行的进程,然后使用“ bg”(后台程序的缩写)在后台发送进程。
现在,已暂停的进程将在后台运行。
running_command ^z bg
让我们以与以前相同的示例为例。
Hyman@theitroad:~$sleep 60 ^Z [1]+ Stopped sleep 60 Hyman@theitroad:~$bg [1]+ sleep 60 &
查看在后台运行的所有进程
既然我们知道如何在后台发送进程,那么我们可能会对知道哪些命令在后台运行感兴趣。
为此,可以在终端中输入以下命令:
jobs
首先,将一些命令放在后台。
firefox & gedit & vim &
现在,jobs命令将在后台向我们显示所有正在运行的作业/进程/命令,如下所示:
jobs [1] Running firefox & [2]- Running gedit & [3]+ Stopped vim
我们是否注意到数字[1],[2]和[3]等?
这些是工作ID。
我们还会注意到两个命令上的–和+号。
+号表示我们已运行或者前景显示的上一个作业。
–符号表示我们运行或者前景显示的倒数第二个作业。
在Linux中发挥作用
好的!因此,我们学会了在Linux中在后台运行命令。
但是,如何将后台运行的进程再次置于前台呢?
要将命令发送到后台,我们使用了“ bg”。
要恢复后台进程,请使用命令“ fg”。
fg
现在,如果仅使用fg,它将把后台作业队列中的最后一个进程带到前台。
在我们之前的示例中,运行“ fg”将把Vim编辑器带回到终端。
如果我们希望将某个进程置于前台,则需要指定其作业ID。
职位ID是我们在“职位”命令输出的每一行开头看到的数字。
fg n
其中n是命令作业输出中显示的作业ID。