nohup(no hang-up)命令在 Linux 中用于使进程忽略挂起(SIGHUP)信号。挂起信号通常在用户关闭终端或断开与服务器的连接时发送给与该终端关联的所有进程。默认情况下,许多程序会在接收到挂起信号时终止运行。
nohup 命令的主要作用是在用户退出登录或关闭终端后,让指定的进程继续运行。这在运行需要长时间执行的脚本或程序时非常有用,因为它可以确保进程在用户离开后仍然继续运行。
nohup 命令通过忽略挂起信号(SIGHUP)来实现这一目的。当一个进程收到挂起信号时,它会执行一些清理操作并终止运行。然而,当使用 nohup 命令启动进程时,该进程会忽略挂起信号,从而在用户退出登录或关闭终端后继续运行。
要使用 nohup 命令,只需在命令前加上 nohup,并将输出重定向到一个文件,以防进程产生输出。例如:
nohup your_command > output.log 2>&1 &
这里,your_command 是要执行的命令,output.log 是输出文件的名称。2>&1 表示将标准错误(2)重定向到标准输出(1),& 表示将命令放入后台运行。这样,即使关闭终端,your_command 也会继续运行,并将输出保存到 output.log 文件中。