一、痛点场景远程SSH连接服务器运行程序、解压大文件、执行脚本一旦关闭Xshell终端任务直接中断。原因前端终端关闭会发送SIGHUP信号终止所有关联前台进程。本文三种方案全覆盖后台离线运行需求。二、方案1 符号——简单后台运行缺陷关闭终端依旧中断1. 使用方式python test.py2. 优缺点优点用法最简单缺点只是放入后台关闭终端进程依旧被杀仅适合短时间后台任务。三、方案2nohup ——生产最常用永久后台运行1. 原理nohup 屏蔽终端关闭的挂断信号搭配放入后台关闭SSH终端程序依旧持续运行自动输出日志到nohup.out。2. 标准生产命令直接复制# 标准写法日志输出到指定文件 nohup python test.py run.log 21 # 忽略日志输出 nohup python test.py /dev/null 21 3. 查看后台任务jobs # 查看当前终端后台任务 ps aux # 全局查看进程4. 前台/后台切换fg 任务编号 # 后台切前台 bg 任务编号 # 前台切后台四、方案3screen——窗口离线托管可随时重连查看日志长任务首选1. 适用场景需要随时查看程序实时输出、长时间运维任务、需要反复进入终端查看运行状态首选screen。2. 安装yum install screen -y3. 全套实操命令# 1. 创建新会话 screen -S app-run # 2. 在窗口内执行任务直接关闭终端也不会中断 python test.py # 3. 退出会话保留进程后台运行CtrlA 松开后按 D # 4. 重新连接会话 screen -r app-run # 5. 查看所有会话 screen -ls # 6. 彻底关闭会话 exit五、三种方式选型建议临时后台、不关闭终端业务程序常驻后台、无需看实时日志nohup生产90%场景长时间任务、需要随时看输出screen
Linux 后台进程 、nohup、screen详解——程序离线后台运行,关闭终端不中断
一、痛点场景远程SSH连接服务器运行程序、解压大文件、执行脚本一旦关闭Xshell终端任务直接中断。原因前端终端关闭会发送SIGHUP信号终止所有关联前台进程。本文三种方案全覆盖后台离线运行需求。二、方案1 符号——简单后台运行缺陷关闭终端依旧中断1. 使用方式python test.py2. 优缺点优点用法最简单缺点只是放入后台关闭终端进程依旧被杀仅适合短时间后台任务。三、方案2nohup ——生产最常用永久后台运行1. 原理nohup 屏蔽终端关闭的挂断信号搭配放入后台关闭SSH终端程序依旧持续运行自动输出日志到nohup.out。2. 标准生产命令直接复制# 标准写法日志输出到指定文件 nohup python test.py run.log 21 # 忽略日志输出 nohup python test.py /dev/null 21 3. 查看后台任务jobs # 查看当前终端后台任务 ps aux # 全局查看进程4. 前台/后台切换fg 任务编号 # 后台切前台 bg 任务编号 # 前台切后台四、方案3screen——窗口离线托管可随时重连查看日志长任务首选1. 适用场景需要随时查看程序实时输出、长时间运维任务、需要反复进入终端查看运行状态首选screen。2. 安装yum install screen -y3. 全套实操命令# 1. 创建新会话 screen -S app-run # 2. 在窗口内执行任务直接关闭终端也不会中断 python test.py # 3. 退出会话保留进程后台运行CtrlA 松开后按 D # 4. 重新连接会话 screen -r app-run # 5. 查看所有会话 screen -ls # 6. 彻底关闭会话 exit五、三种方式选型建议临时后台、不关闭终端业务程序常驻后台、无需看实时日志nohup生产90%场景长时间任务、需要随时看输出screen