You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何断开SSH会话不终止进程?SL7环境文件系统扩容场景求助

如何让已运行的文件系统扩容进程脱离SSH连接继续运行(SL7/RHEL7.2环境)

嗨,别慌!这种忘了开screen就启动长时间进程的情况太常见了,完全能救回来,而且在你的SL7(和RHEL7.2等效)环境下操作很简单,我给你两种靠谱的方法:

方法一:用reptyr转移到screen会话(最直观)

这个工具能把已运行的进程“抓”到新的screen会话里,之后就算SSH断了,进程也会稳稳在服务器上跑:

  • 先找到目标进程的PID:
    在当前SSH窗口里,按Ctrl+Z把扩容进程暂停,然后输入jobs,你会看到类似[1]+ Stopped your_expand_command的输出,这里的1是进程的作业编号;接着输入bg %1让进程回到后台继续运行。
    或者直接用ps aux | grep 你的扩容命令关键词找到进程的PID(比如12345)。
  • 安装reptyr:SL7里直接用yum安装就行:
    sudo yum install reptyr
    
  • 启动新的screen会话:
    screen -S expand_rescue
    
  • 把进程转移到screen里:在新的screen会话中输入:
    reptyr 12345
    
    这里的12345替换成你刚才找到的PID就行。之后就算你断开SSH,重新连上去用screen -r expand_rescue还能看到进程(不过你说不需要进度信息,其实不用管它,进程已经独立运行了)。

方法二:用disown让进程脱离SSH会话控制(无需额外装工具)

如果不想装新工具,用系统自带的命令就能搞定:

  • 同样先暂停进程:按Ctrl+Z,然后输入bg %1让进程回到后台运行(1是jobs里的作业编号)。
  • 让进程脱离当前SSH会话的控制:
    disown -h %1
    
    这样就算你断开SSH连接,这个扩容进程也不会被终止。因为你不需要进度信息,也可以顺便把输出重定向到空设备,避免占用磁盘空间(不过进程已经在跑的话,这步可选):
    nohup your_expand_command > /dev/null 2>&1 &
    
    (如果进程已经后台运行,其实只需要disown就够了)

两种方法都能解决你的问题,选哪个看你习惯就行~

内容的提问来源于stack exchange,提问作者xcorat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:26:52