在 Linux 与 Unix 系统中,后台运行程序是日常运维中的常见需求,尤其当通过 SSH 远程连接服务器时,为了避免终端关闭导致任务中断,nohup 命令便成为不可或缺的利器。它的全称 "no hang-up" 意为“不挂断”——即便关闭终端或断开网络连接,程序依然能在后台持续稳定运行,不受影响。

如何使用 nohup?操作步骤非常简洁,只需几个步骤即可轻松上手。
打开终端后,直接输入 nohup 加上需要运行的程序及其参数即可。例如,要运行名为 my_program 的程序,并传递两个参数 arg1 和 arg2,命令如下:
nohup my_program arg1 arg2 &
请注意末尾的 & 符号——它负责将程序放入后台执行,从而避免终端被占用。按下回车后,程序即开始后台运行,此时您可以放心关闭终端或断开网络,程序不会因此中断。
默认情况下,程序的输出会被重定向到名为 nohup.out 的文件中。若希望将输出保存到其他位置,可以自行指定文件路径,同时将标准错误一并重定向。例如:
nohup my_program arg1 arg2 > output.log 2>&1 &
这样,标准输出和标准错误都会写入 output.log 文件中,方便后续查看。
如需实时监控输出日志,可使用 tail -f 命令跟踪文件变化:
tail -f output.log
若后续需要终止该后台程序,先通过 ps aux | grep my_program 查找其进程号(PID),再使用 kill 命令结束进程:
ps aux | grep my_program
kill [PID]
将 [PID] 替换为实际查到的进程号即可。整个过程看似简单,但背后涵盖了后台任务管理、输出重定向、进程控制等日常运维的核心操作。不妨亲自尝试一次,很快就能体会到 nohup 命令的实用价值。
