当前位置:首页 >探索 >如何将一个 Linux 命令转至后台运行? 如果某个任务耗时比较长

如何将一个 Linux 命令转至后台运行? 如果某个任务耗时比较长

2024-05-15 11:19:52 [百科] 来源:避面尹邢网

如何将一个 Linux 命令转至后台运行?

作者:刘光录 系统 Linux 本文将介绍几种向后台发送进程的何将后台方法,然后还会展示如何将后台进程恢复到前台。命令

在使用命令行工作的转至时候,如果某个任务耗时比较长,运行长时间的何将后台占据着终端,这总是命令很麻烦的。其实,转至在 Linux 中,运行可以将命令或进程发送到后台,何将后台让其在后台运行,命令而释放出终端来,转至这样可以继续运行其他的运行命令。

如何将一个 Linux 命令转至后台运行? 如果某个任务耗时比较长

本文将介绍几种向后台发送进程的何将后台方法,然后还会展示如何将后台进程恢复到前台。命令

如何将一个 Linux 命令转至后台运行? 如果某个任务耗时比较长

直接在后台启动 Linux 进程

如何将一个 Linux 命令转至后台运行? 如果某个任务耗时比较长

如果我们知道某个命令或进程会花费很长时间,转至那么最好直接在后台启动该命令。

要在后台运行 Linux 命令,只需要在命令的末尾添加一个 & 符号,如下所示:

your_command &

比如,我们启动一个简单的 sleep 命令,将其发送到后台:

sleep 60 &

当命令在后台完成时,你应该能在终端上看到该命令的信息:

[1]+  Done                    sleep 60

将正在运行的进程发送到后台

如果你已经运行了一个程序,然后忽然意识到,这个程序本应该在后台运行。那么这种情况下,也有办法将正在运行的进程发送到后台。

此时需要做的,首先按 Ctrl + Z 键,暂停正在运行的进程,然后使用 bg(background 的缩写)向后台发送进程,该被挂起的进程就会转到后台继续运行。

running_command
^z
bg

还是以刚才那个 sleep 命令为例,首先在前台运行 sleep 命令,然后将其转到后台:

[gliu@fedora~]$ sleep 60
^Z
[1]+ Stopped sleep 60
[gliu@fedora~]$ bg
[1]+ sleep 60 &

查看后台运行的所有进程

通过上文的介绍,我们知道了如何在后台运行程序,那么另一个问题,就是我们希望能够查看目前都有哪些进程正在后台运行。

要查看当前正在运行的后台进程,可以使用 jobs 命令,如下:

jobs

为了演示这个例子,我们首先在后台运行一些命令:

firefox &
gedit &
vim &

现在,运行 jobs 命令,就会显示所有正在运行的进程或命令:

jobs
[1] Running firefox &
[2]- Running gedit &
[3]+ Stopped vim

在上述输出中,注意到其中的数字([1], [2], [3])了吗?这是作业ID。另外,其中的两条输出,数字后面的 + 和 - 符号是什么意思呢?+ 表示我们运行的最后一个作业,- 表示我们运行的倒数第二个作业。

将后台运行的进程转至前台

接下来一个问题,如何将在后台运行的进程,转到前台呢?

将正在运行的命令发送到后台,使用 bg;那么反过来,要恢复后台进程,可使用 fg(foreground的简写) 命令:

fg

单单使用 fg 命令而不带任何参数,会把后台作业列表中的最后一个进程带到前台。在前面的例子中,运行 fg 会将 vim 编辑器返回到终端中。

如果我们要将某个指定的进程带到前台,还需要指定作业的 id。这个 id 就是我们前面提到的,使用 jobs 命令的输出中,每一行最前面的数字。

fg n

上文所述就是一些关于将 Linux 命令在后台运行的相关知识。除此以外,建议再学习一下 nohup 命令,这个命令可以让我们在注销会话后(也就是关闭终端后),让命令继续在后台运行。稍后我们也会分享一篇关于 nohup 的文章,敬请关注。

以上就是本次分享全部内容,欢迎讨论。

责任编辑:庞桂玉 来源: TIAP Linux命令后台

(责任编辑:焦点)

    推荐文章
    热点阅读