Nohup 命令

2025年3月17日 | 阅读 3 分钟

nohup 的意思是“no hang-up”(无挂断),它是一个 Linux 工具,可以在退出终端或 shell 后继续运行进程。它阻止进程接收 SIGHUP 信号(Signal hang up);这些信号会发送给进程以终止或结束进程。

通常,当我们退出终端时,所有正在运行的进程都会默认被终止。但是,对于正在运行的进程会显示警告。如果一个进程花费的时间比预期的长,而我们需要它完成。在这种情况下,nohup 命令是一个有用的工具,可以使进程在后台继续运行。nohup 命令的最佳用途包括内存检查、同步、重启服务器等。当我们在 ssh 上运行程序时,它也很有用。

在 ssh 连接的情况下,如果连接中断,所有正在运行的进程都会被终止,我们可能会丢失数据。nohup 命令克服了这个问题;它会忽略所有挂断信号,并允许进程继续运行。

语法

nohup 命令有两种用法

让我们通过示例了解 nohup 命令的不同用法

检查 nohup 版本

它是 Linux 系统的默认命令行实用程序。因此,我们不需要安装它。我们可以通过执行以下命令来检查已安装的版本

上面的命令将显示已安装的版本。请看下面的输出

Nohup Command

如何使用 nohup 启动进程

如果您想在退出终端后运行一个进程,请在进程前面执行 nohup 命令。这是一个直接的过程。进程将继续运行,不会被杀死。

让我们举个例子来理解 nohup 是如何工作的。我们有一个文件 'hello.sh',我们将使用 nohup 命令打开它。执行下面的命令

现在,即使我们关闭终端,cat 命令也会完全执行。请看下面的输出

Nohup Command

从上面的输出中我们可以看到,它将创建一个文件 'nohup.out' 并将输出追加到其中。

要显示输出,请执行以下命令

考虑下面的输出

Nohup Command

此外,我们还可以将输出重定向到指定文件。要做到这一点,请按如下方式执行命令

上面的命令会将输出重定向到指定文件 'newfile.' 要验证输出,请执行以下命令

考虑下面的输出

Nohup Command

启动后台进程

要将进程作为后台进程启动,请在命令后使用 '&' 符号。它将在后台执行我们的进程。例如,如果我们想 ping javatpoint.com,请执行以下命令

上面的命令将 ping javatpoint.com 并将进程重定向到后台。要检查进程,请执行 pgrep 命令,如下所示

考虑下面的输出

Nohup Command

要终止进程,请执行 kill 命令并使用给定的 PID。

上面的命令将杀死后台进程。请看下面的输出

Nohup Command
下一个主题Linux at 命令