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

VM快照恢复后通过HyperV启动Jenkins Agent并保活的实现方法

问题根因

进程自动退出的核心原因是Hyper-V对应的PowerShell远程会话默认开启作业对象隔离:所有通过Invoke-Command在会话内拉起的进程,都会被纳入当前会话的作业对象,不管你加不加Start-Process参数,只要远程会话结束,Windows会直接终止作业对象下的所有关联进程,这就是Java进程闪一下就消失的原因。

可行方案(按稳定性从高到低排序)

1. 虚拟机内将Jenkins Agent配置为自启Windows服务(最优方案,零主机侧维护)

这个方案完全不需要你在快照恢复后从主机执行任何启动命令,只要虚拟机开机Agent就会自动运行,彻底规避会话绑定问题:

  • 在测试虚拟机内下载nssm(单文件服务封装工具,免安装)
  • 管理员身份打开PowerShell,执行命令安装服务:
# 替换为你本地实际的nssm路径、Agent启动脚本路径
nssm install JenkinsAgent "C:\Jenkins\JenkinsAgentStart.bat"
  • 执行nssm edit JenkinsAgent打开配置面板调整参数:
    • 「登录」标签页选择平时运行Jenkins Agent的系统账号,输入正确密码,避免权限不足导致启动失败
    • 「详细信息」标签页把工作目录设为C:\Jenkins
    • 「恢复」标签页将一/二/后续失败的响应全部设为「重启服务」,重置失败计数时间设为1分钟
  • 配置完成后把服务启动类型设为「自动」,手动启动一次确认Agent能正常连接Jenkins控制器
  • 确认服务运行正常后再打快照,后续不管恢复关机状态快照还是运行状态快照,只要虚拟机启动,Agent服务会自动拉起,不需要主机做任何额外操作。

2. 必须从主机侧触发启动时,用WMI接口创建脱离会话的进程

如果有特殊场景不能在VM内配置自启,不要用Start-Process启动脚本,改用WMI的Win32_Process.Create方法创建进程,这个接口拉起的进程不会绑定到当前远程会话的作业对象,会话断开也不会退出。
在Hyper-V主机执行以下命令即可:

Invoke-Command -VMName "你的虚拟机名称" -Credential $credential -ScriptBlock {
    $startupConfig = ([WmiClass]"root\cimv2:Win32_ProcessStartup").Create()
    $startupConfig.ShowWindow = 0 # 隐藏后台运行窗口
    # 参数依次为:启动脚本路径、工作目录、启动配置、返回的进程ID变量
    ([WmiClass]"root\cimv2:Win32_Process").Create("C:\Jenkins\JenkinsAgentStart.bat", "C:\Jenkins", $startupConfig, $null)
}

注意必须显式指定Agent的工作目录,否则启动脚本会因为找不到Jenkins配置文件、连接密钥直接退出。

3. 计划任务触发启动(备选兼容方案)

你也可以提前在虚拟机基准快照里预创建一个最高权限计划任务:

  • 任务名设为StartJenkinsAgent,操作指向C:\Jenkins\JenkinsAgentStart.bat,工作目录设为C:\Jenkins
  • 安全选项选「不管用户是否登录都要运行」,勾选「使用最高权限运行」
  • 触发器留空,不设置自动触发规则
    需要启动Agent时,直接在主机侧远程触发该任务即可:
Invoke-Command -VMName "你的虚拟机名称" -Credential $credential -ScriptBlock {
    Start-ScheduledTask -TaskName "StartJenkinsAgent"
}

计划任务启动的进程运行在独立系统会话中,和远程PowerShell会话完全隔离,不会随会话断开退出。

避坑提示

不要尝试给Start-Process加-Wait、-NoNewWindow之类的参数解决问题,这些参数都不会改变进程被绑定到会话作业对象的逻辑,只要会话销毁进程必然被杀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:01:41