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

Rundeck通过SSH执行任务时部分任务持续处于运行状态问题求助

Rundeck SSH执行器在Windows节点任务挂起问题排查与解决

可能的问题原因

  • OpenSSH版本与Windows 2012R2兼容性缺陷:Windows 2012R2对OpenSSH 8.x系列的进程信号转发支持不完善,导致Rundeck无法正确感知任务进程的终止状态。
  • Rundeck SSH信号传递机制失效:Rundeck通过SSH发送的终止信号(如SIGTERM)未被Windows OpenSSH正确转发到任务子进程,使得子进程成为孤儿进程,Rundeck持续判定任务处于运行状态。
  • 节点资源瓶颈:Windows节点CPU、内存占用过高时,OpenSSH服务进程无法及时响应Rundeck的状态查询请求,导致任务状态更新延迟或错误。
  • SSH会话超时配置不合理:Rundeck或OpenSSH的会话超时设置过长,任务结束后SSH会话未及时关闭,Rundeck误判任务仍在运行。

解决办法

  • 调整Windows OpenSSH配置:
    编辑节点上的sshd_config文件,添加/修改以下配置:
    ClientAliveInterval 30
    ClientAliveCountMax 3
    PermitUserEnvironment yes
    
    重启OpenSSH服务,确保会话超时后自动关闭,同时允许传递Rundeck的环境变量。
  • 升级Rundeck至最新稳定版:
    Rundeck 4.1及后续版本针对Windows SSH执行器的进程管理逻辑做了优化,修复了部分信号传递相关的bug。
  • 优化任务执行脚本:
    在Windows任务脚本末尾添加明确的退出指令(如exit 0),避免脚本出现无限循环或阻塞IO的操作;对于长时间运行的任务,增加定期输出的逻辑,保持SSH会话活跃。
  • 调整Rundeck SSH执行器参数:
    在节点配置中设置ssh-connection-timeout=30000(30秒),并启用ssh-usepty=true选项,确保PTY会话能正确传递终止信号。
  • 降级OpenSSH版本:
    尝试使用Windows官方推荐的OpenSSH 7.9p1版本,该版本与Windows 2012R2兼容性更好,减少进程挂起的概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:45:27