jenkins/hudson:当从属作为 Windows 服务运行时,批处理 CMD 窗口不可见

jenkins/hudson:当从属作为 Windows 服务运行时,批处理 CMD 窗口不可见

我将 Jenkins 从属服务器作为 Windows 服务运行,然后它将启动一系列调用(例如):

Slave.exe->ant->cmd批处理->notepad.exe

问题是“notepad.exe”不可见,我可以在任务管理器中看到它,但它没有显示其 UI。

windows平台是win server 2008,我配置了服务“以本地系统帐户登录”,并勾选了“允许服务与桌面交互”。

对此有什么想法吗?非常感谢

答案1

从 Windows Vista 开始,所有服务都在单独的会话(会话 0)中运行,并且通常无法直接与用户交互,即使设置了“允许服务与桌面交互”。换句话说,您不应该这样做。您不能在登录会话中运行 slave.exe 吗?

但是,作为向后兼容性缓解措施,Windows 应该检测到服务已显示用户界面并主动向您显示(在单独的桌面上)。我不确定为什么这不起作用。服务是否配置为以本地系统身份运行?

答案2

我在尝试启动一些自动脚本 Web 测试脚本(需要 GUI)时遇到了类似的问题。

这是诀窍。您需要启动远程桌面连接,将其设置为在连接启动后启动 .exe,输入并保存身份验证信息,然后将连接保存到磁盘。

让 jenkins 启动已保存的 RDP 连接,它会为您启动一个 GUI。

此外,如果您在 jenkins 中运行多个 Windows 命令,则需要将每个命令作为单独的项目(如果它们返回退出代码...就像您正在调用两个 .bat 文件或类似的东西)

相关内容