📜  Linux Nohup命令

📅  最后修改于: 2020-12-07 08:19:13             🧑  作者: Mango

Nohup命令

nohup表示没有挂断,它是一个Linux实用程序,即使退出终端或外壳程序也可以保持进程运行。它防止进程获取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

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