nohup命令使Linux进程忽略挂断信号,从而在用户退出后持续运行。首先切换到脚本目录并赋予执行权限,然后使用nohup启动脚本并添加&符号使其后台运行,输出默认保存至nohup.out文件。可指定其他输出文件。关闭终端后任务仍继续执行,可通过tail命令查看输出,使用ps和kill命令管理进程。
在Linux系统管理中,我们常常会遇到这样一个需求:启动一个耗时较长的任务,但又不想一直守着终端等待它完成。比如,执行一个数据备份脚本、运行一个模型训练任务,或者启动一个服务。这时候,如果直接关闭终端,任务通常会被中断。有没有办法让任务在后台“默默”地继续运行呢?答案就是 nohup 命令。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
简单来说,nohup 的作用就是让进程忽略挂断信号(SIGHUP),从而在用户退出登录后依然能够持续运行。下面,我们就来一步步看看如何实际使用它来运行你的Shell脚本。
首先,打开你的终端。使用 cd 命令切换到存放Shell脚本的目录。举个例子,如果你的脚本放在 /home/user/scripts 这个路径下,就输入:
cd /home/user/scripts
在运行脚本之前,得先确保它有执行的“资格”。使用 ls -l 命令可以查看文件权限。如果脚本还没有可执行权限,运行下面这条命令来添加:
chmod +x script_name.sh
记得把这里的 script_name.sh 替换成你实际的脚本文件名。
关键步骤来了。使用 nohup 命令来启动脚本,并在命令末尾加上 & 符号,这样它就会在后台运行:
nohup ./script_name.sh &
执行这条命令后,系统会返回一个进程ID(PID),并告诉你任务已经转入后台。默认情况下,脚本的所有输出(包括标准输出和错误输出)都会被重定向到当前目录下一个名叫 nohup.out 的文件里。
如果你希望将输出记录到指定的文件,可以这样操作:
nohup ./script_name.sh > output_file.txt &
这样,输出内容就会保存到 output_file.txt 文件中,方便你后续查看。
好了,现在你可以放心地关闭终端窗口,甚至断开SSH连接。之前启动的那个脚本进程不会受到影响,会继续在系统后台执行。
任务跑起来之后,你可能会想看看它进展如何,或者有没有报错。这时候,tail 命令就派上用场了。使用下面的命令可以实时查看输出文件的最后几行内容:
tail -f nohup.out
(如果你指定了其他输出文件,比如上面的 output_file.txt,就把 nohup.out 换成对应的文件名。)
如果需要停止这个后台任务,首先得找到它的进程ID。我们可以用 ps 命令配合 grep 来查找:
ps aux | grep script_name.sh
在列出的信息中找到对应的PID,然后使用 kill 命令来结束它:
kill [PID]
将 [PID] 替换为实际的进程ID数字即可。
掌握了 nohup 的用法,就相当于为你的Linux任务管理增加了一个非常实用的“后台运行”技能。无论是处理日常的自动化脚本,还是部署需要长期运行的服务,它都能让你的工作流程更加灵活和高效。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述