nohup
(no hang-up)命令是 Linux 系统中用于在后台运行程序的实用工具,它可以防止进程因终端关闭而中断。当你使用 nohup
命令运行一个程序时,即使关闭终端或者断开与服务器的连接,程序也会继续运行。这对于长时间运行的任务或者需要在后台执行的任务非常有用。
nohup
的工作原理是通过忽略挂起(SIGHUP)信号来实现。当终端关闭时,通常会向与之关联的进程发送 SIGHUP 信号,导致进程终止。nohup
通过忽略这个信号,使得进程在终端关闭后仍然继续运行。
使用 nohup
的基本语法如下:
nohup command-to-run &
其中,command-to-run
是要执行的命令,&
表示将命令放入后台运行。
例如,如果你想在后台运行一个名为 my_script.sh
的脚本,可以使用以下命令:
nohup ./my_script.sh &
运行此命令后,nohup
会创建一个名为 nohup.out
的文件,用于存储程序的输出。如果你想将输出重定向到其他文件,可以使用以下命令:
nohup ./my_script.sh > output.log &
这样,程序的输出将被写入 output.log
文件,而不是 nohup.out
。
总之,nohup
命令通过忽略挂起信号,使得 Linux 进程在终端关闭后仍然继续运行,从而帮助避免因终端关闭而导致的进程中断。