在后台和前台运行 Linux 命令
如果您有一个长时间运行的任务,等待它完成并不总是明智的做法。我的意思是为什么要让终端占用某个命令?在 Linux 中,您可以将命令或进程发送到后台,这样命令就可以运行,而终端则可以自由运行其他命令。
在本教程中,我将向您展示几种在后台发送进程的方法。我还将向您展示如何将后台进程带回前台。
直接在后台启动 Linux 进程
如果您知道该命令或过程将需要很长时间,那么最好在后台启动该命令。
要在后台运行 Linux 命令,您只需在命令末尾添加一个与号 (&),如下所示:
your_command &
让我们采用一个简单的bash 睡眠命令并将其发送到后台。
sleep 60 &
当命令在后台完成时,您应该在终端上看到有关该命令的信息。
[1]+ Done sleep 60
将正在运行的 Linux 进程发送到后台
如果您已经运行了某个程序,然后意识到应该在后台运行它,请不要担心。您也可以将正在运行的进程发送到后台。
您在这里要做的是使用 Ctrl+Z暂停正在运行的进程,然后使用 ' bg '(background 的缩写)将该进程发送到后台。暂停的进程现在将在后台运行。
running_command
^z
bg
我们采用与之前相同的例子。
abhishek@linux:~$ sleep 60
^Z
[1]+ Stopped sleep 60
abhishek@linux:~$ 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 是您在“jobs”命令输出中每行开头看到的数字。
fg n
其中 n 是命令 jobs 的输出中显示的作业 ID。
就是这样
这是一个简短的教程,但足以让您了解一些有关在 Linux 中后台运行命令的知识。我建议也学习nohup 命令。此命令允许您在退出会话后在后台运行命令。
如果您有任何问题或建议,请在下面留言。