什么是 Nohup 以及如何使用它?

Linux 系统上有很多可用的命令。 有些您一天会多次使用,有些则通常保留用于特殊用例。 nohup 就是这样一个命令。 您不会每天都使用它,但是当您需要它时,您会很感激它就在身边。 在这里,我们向您展示了什么 nohup 是以及如何使用它。

什么是 Nohup?

nohup 是“无挂断”的缩写。 这不是您自己运行的命令。 nohup 是一个补充命令,它告诉 Linux 系统在命令启动后不要停止它。 这意味着它会一直运行直到完成,即使启动它的用户注销也是如此。 它的用途与 tmux 或 screen 有点相似,允许您启动一个进程,而不必担心如果您注销或与服务器断开连接,它是否会完成。 的语法 nohup 很简单,看起来像这样:

注意命令末尾的“&”。 这会将命令移至后台,从而释放您正在使用的终端。

nohup 几乎可以与您在终端中运行的任何命令一起使用。 它可以使用自定义脚本以及标准系统命令和命令行实用程序运行。 您可以使用它在远程服务器上启动安全审核脚本并能够断开连接并离开,或者如果您想在后台运行更新而不让它们停止任何事情,您可能只想使用它。

Nohup.out

因为 nohup 可以独立于启动它的用户继续运行,该命令需要在某个地方输出任何消息或错误。 由于没有与之关联的终端, nohup 将所有内容记录到输出文件中, nohup.out.

默认情况下,该文件位于您启动命令的任何目录中。 nohup.out 有点独特,因为它同时包含标准输出和错误输出。 nohup 默认情况下将两者重定向到同一个文件。

Nohup 输出

你不一定需要使用 nohup.out,不过——这只是默认设置。 您可以在运行时指定自定义输出 nohup 并将其放置在自定义位置。

自定义输出包含与标准完全相同的数据 nohup.out 文件会。 这对于我上面提到的安全审计脚本来说很好。 你可以命名它 audit-script-output.txt 在某种挂载的远程文件夹中,从您自己的笔记本电脑上舒适地查看该服务器的安全状况,而不是通过查看 cat 全天输出。

Nohup 与守护进程有何不同?

至此,您可能想知道什么设置 nohup 除了守护进程。 毕竟,它们似乎都服务于相对相同的目的,但实际上并非如此。

守护进程在后台连续运行。 它们最好保留给您不想退出的进程,例如服务器。 它们也需要更多的编程工作,因此它们不适合简单的一次性脚本。

nohup 是一次性使用。 考虑一个需要很长时间才能运行但最终仍会完成的脚本。 也许您时不时地运行一项漫长而复杂的任务,需要数小时才能完成。 你不想让终端打开或用户登录,所以你使用 nohup 让它在后台运行并将所有输出放入您选择的任何文件中,无论是默认 nohup.out 或您选择的位置。

如果你喜欢这篇文章 nohup,它的好处和用途,请确保您查看我们的其他一些 Linux 内容,例如我们对文件权限的解释或加速慢速 Linux 机器。

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅