Linux NOHUP 命令

NOHUP 代表 No Hang-up,这是 Linux 中的一个命令,它简单地忽略 Hang-up 信号。 这意味着在使用 NOHUP 命令的同时运行命令将使其保持运行,即使用户退出系统也是如此。 但是,一旦该命令完成执行,其输出将保存在名为“nohup.out”的文件中,而不是出现在终端上。 在本指南中,我们将进一步了解 Linux 中的 NOHUP 命令。

Linux 中的 NOHUP 命令

Linux 中 NOHUP 命令的用法可以通过查看其帮助手册快速了解。 要访问它,您必须执行以下命令:

$ nohup --help

您可以在下图中查看此命令的帮助手册:

但是,要有效地使用此命令,您可以查看以下示例:

示例 1:使用 NOHUP 运行命令

在这个 example,我们将在 Linux 中使用 NOHUP 命令运行一个 bash 脚本。 用于此目的的确切命令如下:

$ nohup bash Space.sh

这里,“Space.sh”是 bash 需要执行的脚本文件。

由于我们使用 NOHUP 命令执行此脚本,因此其输出不会出现在终端上。 相反,它将被重定向到一个新创建的名为“nohup.out”的文件,如下图所示:

示例 2:使用 NOHUP 将命令的输出重定向到不同的文件

在上一个 example,我们没有为我们的命令的输出应该被重定向的文件提供名称。 然而,在这 example,我们将使用 NOHUP 命令将另一个命令的输出重定向到一个特别提到的文件,您可以从以下命令中看到:

$ nohup bash Space.sh > newfile.txt

您可以为输出文件选择任何名称。 然而,在这种特殊情况下,我们的输出 bash 脚本将被重定向到“newfile.txt”文件而不是“nohup.out”文件,如下图所示:

确认是否输出 bash 脚本是否已重定向到所述输出文件,我们将使用以下命令显示该文件的内容:

$ cat newfile.txt

下图中显示的这个文件的内容证实了我们的输出 bash 脚本已成功重定向到此文件。

示例 3:使用 NOHUP 在后台运行命令

现在,我们将使用 NOHUP 命令在 Linux 的后台运行另一个命令。 这意味着即使在关闭终端之后,该命令仍将继续在后台运行,直到我们明确终止它。 要理解这一点,您可以考虑以下命令:

$ sudo nohup ping &

上一条命令会开始在后台执行ping命令,如下图所示:

现在,即使你 close 您的终端,此命令将继续在后台运行。 因此,无论何时您希望终止其执行,都必须使用以下命令显式终止它:

$ kill -9 2700

这里,“2700”是指由于执行NOHUP命令而较早出现的要杀死的命令的进程ID(PID)。

结论

本文向您介绍了 Linux 中的 NOHUP 命令。 当用户不能一直保持登录状态但仍希望在他们不在的情况下完成工作时,此命令非常方便。 借助一些相关示例,我们试图传达此 Linux 命令的基本要点。 至此,您将对 NOHUP 命令在 Linux 中的工作方式有了一个很好的了解。