Linux 中的 Nohup 命令及示例
Linux 中的 nohup 命令用于告诉进程忽略它收到的任何 SIGHUP
(挂断)信号。每当当前终端关闭时,SIGHUP 信号就会发送到后台作业。因此,我们可以在后台运行一个作业,关闭终端,但仍然看到它在后台运行。
在本教程中,您将通过示例学习如何在 Linux 中使用 nohup 命令。请按照以下步骤了解可与此命令一起使用的各种选项。
在本教程中您将学习:
如何在 Linux 上使用 nohup 命令
常用选项
从终端启动的每个进程都作为执行该进程的子进程绑定到 shell。当父进程被终止时,子进程也会被终止。
当用户需要远程运行进程并让进程在注销后运行时,这不是特别期望的行为。因此,存在 nohup 命令。 Linux 中的 nohup 命令确保进程不与任何特定的 shell 绑定,因此用户可以通过注销来终止 shell 进程,并且使用 nohup 执行的进程将被保持活力。
查看下面的示例,可以在短时间内掌握 nohup Linux 命令。
Linux 中的 nohup 命令示例
要使用nohup命令,只需像平常一样运行命令,但将nohup命令放在它的前面。以下是我们将睡眠命令置于后台的示例。
$ nohup sleep 10000 & [1] 1908 nohup: ignoring input and appending output to 'nohup.out'
我们关闭了终端并重新打开它,然后运行了以下命令,这表明
sleep
命令仍在运行,这要归功于 nohup。$ ps aux | grep sleep linuxco+ 1908 0.0 0.0 8084 524 ? S 13:05 0:00 sleep 10000
请记住,您可以使用
fg
命令将后台作业带到前台。$ fg
默认情况下,输出重定向到
nohup.out
文本文件。如果您想将输出重定向到其他文件,只需在命令中指定文件名即可。$ nohup some_script.sh > output.txt
要使用 nohup 运行多个命令,请使用
bash
命令,然后使用要运行的各种命令。$ nohup bash -c 'who && uptime'
注意
您始终可以使用 man 命令来阅读有关 nohup 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。
结束语
在本教程中,我们了解了 Linux 上的 nohup 命令。 nohup 命令是一个非常简单的命令,用于通过忽略发送到命令的挂断信号来保持命令运行,即使终端或 Bash shell 已关闭。通常,这还与 & 符号 &
结合在一起,以便继续在后台运行某些命令或脚本。