Linux nohup命令

nohup 代表没有挂断,它是一个 Linux 实用程序,即使在退出终端或 shell 后也能保持进程运行。它可以防止进程获取 SIGHUP 信号(信号挂起);这些信号被发送到进程以终止或结束进程。

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

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

语法:

nohup 命令可以通过两种方式使用:

nohup command arguments

或者

nohup options  

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

检查 nohup 版本

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

nohup --version

上述命令将显示已安装的版本。请考虑以下输出:

如何使用nohup启动进程

如果要在退出终端后运行进程,请执行nohup命令,然后执行进程。这是一个直截了当的过程。该进程将继续运行,不会被终止。

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

nohup cat hello.sh 

现在,即使我们关闭终端,cat 命令也会完全执行。请考虑以下输出:

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

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

cat nohup.out  

输出结果:

此外,我们还可以将输出重定向到指定的文件。为此,请按如下方式执行命令:

nohup cat hello.sh > newfile

上面的命令会将输出重定向到指定的文件“newfile”。要验证输出,请按如下方式执行命令:

cat newfile  

输出结果:

启动后台进程

要在后台启动进程,请在命令后使用“&”符号。它将在后台执行我们的流程。例如,如果我们想 ping javatpoint.com,请按如下方式执行命令:

nohup ping javatpoint.com & 

上面的命令将用 javatpoint.com ping 我们并将进程重定向到后台。要检查进程,请按如下方式执行 pgrep 命令:

pgrep -a ping

输出结果:

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

Kill 14085 14546 

上面的命令将杀死后台进程。请考虑以下输出:

热门文章

优秀文章