Linux 中的 Nohup 命令
Bash nohup 命令教程
nohup 的含义是“不挂断”。通常,当我们从系统注销时,所有正在运行的程序或进程都会挂起或终止。如果您想在注销或退出 Linux 操作系统后运行任何程序,则必须使用 nohup 命令。有许多程序需要很多时间才能完成。我们不需要长时间登录来完成命令的任务。我们可以使用 nohup 命令让这些类型的程序在后台运行,并稍后检查输出。使用 nohup 命令的一些示例包括内存检查、服务器重新启动、同步等。本教程介绍了如何在 Ubuntu 上使用 nohup 命令在后台运行程序。您可以使用以下命令检查 nohup 命令的版本。
nohup 命令语法:
您可以通过两种方式使用 nohup 命令。
nohup 命令 [参数...]
nohup 选项
将 nohup 与命令一起使用
示例 1:使用不带“&”的 nohup 命令
当您运行不带“&”的 nohup 命令时,它会在后台运行该特定命令后立即返回 shell 命令提示符。在下面的例子中,nohup运行不带'&'的bash命令在后台执行sleep1.sh文件。如果 nohup 命令中未提及任何重定向文件名,则 nohup 命令的输出将写入 nohup.out 文件中。对于以下命令,您可以通过检查 nohup.out 文件的输出来检查 sleep1.sh 的输出。
$ cat nohup.out
您可以通过以下方式执行命令,将输出重定向到 output.txt 文件。检查output.txt的输出。
$ cat output.txt
示例 2:使用带有“&”的 nohup 命令
当nohup命令与‘&’一起使用时,在后台运行该命令后不会返回到shell命令提示符。但如果您愿意,可以输入“fg” 返回 shell 命令提示符
$ fg
示例3:使用nohup命令在后台运行多个命令
您可以使用 nohup 命令在后台运行多个命令。在以下命令中,mkdir 和 ls 命令是通过使用 nohup 和 bash 命令在后台执行的。您可以通过检查output.txt 文件来获取命令的输出。
$ cat output.txt
示例 4:使用 nohup 在后台启动任意进程
当任何进程启动并且用户在完成正在运行的进程的任务之前关闭终端时,该进程将正常停止。如果使用 nohup 运行该进程,那么它将能够在后台运行该进程,没有任何问题。例如,如果您正常运行 ping 命令,那么当您关闭终端时,它将终止该进程。
您可以使用 pgrep 命令检查所有正在运行的命令的列表。关闭终端。重新打开终端并使用 -a 选项运行 pgrep 命令。不会显示正在运行的命令列表,因为关闭终端时所有正在运行的命令都会终止。
使用 nohup 命令运行 ping 命令。重新打开终端并再次运行 pgrep 命令。您将获得正在运行的具有进程 ID 的进程列表。
您可以通过运行kill命令来停止任何后台进程。只需使用正在运行的特定进程 ID 运行 Kill 命令即可。这里,正在运行的进程的进程id是7015。在7015中运行kill命令来终止该进程。
本教程中通过非常简单的示例来解释 nohup 命令的用法。希望您能够清楚地了解 nohup 命令的功能,并能够将该命令应用于各种目的。