你有没有遇到过这种情况:
远程登录服务器启动了一个程序
关闭终端后,程序直接停止
网络一断,任务就挂掉
如果你做过部署、训练模型、跑爬虫、执行批量任务,那你一定踩过这个坑。
一、nohup 是干什么的?
nohup 全称是:no hang up(不挂断)在 Linux 中,当你关闭终端或 SSH 断开时,系统会向当前会话发送一个信号:二、最基础用法
三、后台运行(最常用写法)
四、指定输出文件
默认输出到 nohup.out,但我们一般会手动指定日志文件。nohup python app.py > app.log 2>&1 &
> 重定向标准输出
2>&1 把错误输出也重定向到同一个文件
& 后台执行
五、查看进程是否运行
六、停止后台程序
七、典型使用场景
nohup java -jar app.jar > app.log 2>&1 &
nohup python process.py > process.log 2>&1 &
nohup python train.py > train.log 2>&1 &
八、nohup 的底层原理
你可以理解为:nohup 改变了进程对信号的处理方式。九、nohup vs & 的区别
十、进阶建议:更专业的方式
这些工具比 nohup 更强大,可以实现会话恢复、进程守护。但在日常运维中,nohup 依然是最轻量、最快速的解决方案。总结
常用写法:nohup command > log 2>&1 &如果你经常远程操作服务器,nohup 是必须掌握的基础命令。在 Linux 体系里,它属于:运维必备生存技能。