很多新手刚用linux的时候都会遇到一个头疼问题:跑一个需要几小时甚至更久的任务,只要关掉终端或者断了ssh连接,程序直接就退出了,白等大半天。学会把程序放到后台运行,是每个linux用户必须掌握的基础技能,今天就给大家整理最常用的几种实用方法。
临时后台:命令末尾加&
这是最简单快捷的后台运行方法,只需要在你原本要执行的命令末尾加一个空格和`&`符号,就能直接把程序放到后台启动。比如你要跑大型项目的编译脚本,直接输入`./build.sh &`回车即可。程序启动后终端不会被占用,你可以继续执行其他操作。不过这种方式有个明显缺点:当你关闭当前终端时,程序会收到系统发出的挂起信号,直接终止运行,所以只适合短时间的临时后台任务。你可以用`jobs`命令查看当前终端的所有后台任务,也能用`fg 任务号`把后台程序调回前台操作。
持久后台:nohup搭配&
如果是需要跑几个小时甚至几天的任务,最常用的就是`nohup`命令,它的作用就是让程序不受终端挂起信号的影响。标准用法是`nohup 你的命令 &`,比如跑ai模型训练可以写`nohup python train.py &`,默认程序的输出会保存到当前目录的`nohup.out`文件中,你也可以自定义输出路径,比如`nohup python train.py > train.log 2>&1 &`把错误日志也统一输出到指定文件。用这种方式启动的程序,哪怕关闭终端、断开ssh,程序也会一直在后台运行,是日常运维、训练任务最常用的组合。
已启动程序转后台的操作
很多时候我们忘了提前加参数,程序已经跑在前台了怎么办?其实很简单:先按`ctrl+z`把当前程序暂停,再输入`bg`命令,就能直接把暂停的程序放到后台继续运行。要注意的是,这种方式转的后台,关闭终端依然会终止程序,如果需要长期运行,还是改成nohup启动更稳妥。

整体来看,日常使用只要记住:临时任务加&,长期任务用nohup,已启动转后台用ctrl+z+bg,就能覆盖绝大多数使用场景,足够满足普通用户的需求了。如果需要管理多个后台任务,也可以后续再尝试screen、tmux这类终端复用工具,功能会更灵活。(全文约645字)


































