nohup(全称 no hang-up)是 Unix 和 Linux 系统中极为实用的命令——它能让程序在后台稳定运行,即使关闭终端或断开网络,任务依然持续执行。对于远程服务器管理而言,nohup 堪称不可或缺的“保命”工具。本文将详细讲解如何利用 nohup 实现远程控制,确保任务不间断运行。

实际操作并不复杂,按以下步骤执行即可。
首先,在本地终端中通过 SSH 连接远程服务器,例如:
ssh 用户名@远程服务器地址
登录成功后,即可使用 nohup 命令启动程序或脚本。假设你需要运行一个名为 my_script.sh 的脚本,命令如下:
nohup ./my_script.sh &
注意,末尾的 & 符号至关重要——它指示系统将命令放入后台执行,从而无需保持终端窗口开启。
默认情况下,nohup 会将程序输出保存到当前目录的 nohup.out 文件中。如需指定其他输出文件,可手动设置重定向,例如:
nohup ./my_script.sh > output.log &
这样,所有输出将被写入 output.log 文件,方便后续查看与分析。
完成上述操作后,即使立即关闭终端或网络断开,远程服务器上的程序仍会继续运行,完全不受影响。这正是 nohup 的持久运行能力。
如何查看程序运行状态?使用 tail 命令可实时追踪输出文件内容,例如:
tail -f nohup.out
如需终止某个后台程序,首先需要找到其进程 ID(PID):
ps aux | grep my_script.sh
然后根据输出的 PID,使用 kill 命令终止该进程:
kill 进程ID
这样就完成了从启动到监控再到终止的完整流程。总结而言,nohup 配合 & 符号,可让你在远程服务器上放心运行任务,无需担心终端断开导致任务中断。
