Jenkins windows slave服务不与桌面交互

时间:2013-09-19 23:47:16

标签: service windows-8 jenkins

我已按照本指南在Windows 8上安装jenkins slave作为服务:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service#InstallingJenkinsasaWindowsservice-InstallSlaveasaWindowsservice%28require.NET2.0framework%29

我需要运行与桌面交互的作业(运行打开浏览器的应用程序等)。因此,在我将slave作为服务安装后(运行从master下载的jnlp),我已将服务“Log on”更改为“允许与显示交互”。

由于某种原因,它只能为“本地系统帐户”启用此功能,即使它建议以指定用户身份运行服务,例如。詹金斯。

但是当我执行作业时没有任何反应,浏览器没有打开。如果我改为停止服务并通过jnlp文件启动从服务器,则作业运行良好 - 浏览器已打开。

当运行jenkins windows slave作为服务时,有没有人与桌面交互?

7 个答案:

答案 0 :(得分:9)

服务自会话0中的Vista开始运行,第一个用户现在处于会话1中。因此您无法再进行交互。这称为会话0隔离。

Microsoft解释了这个herehere。您必须使用使用IPC to communicate to the Service.

的第二个程序

答案 1 :(得分:7)

解决它设置Windows自动登录,我在这里解释: https://serverfault.com/questions/269832/windows-server-2008-automatic-user-logon-on-power-on/606130#606130

然后为Jenkins slave创建一个启动批处理(将它放在Jenkins目录中),这将在桌面上启动它的控制台,并允许GUI作业运行:

java -jar slave.jar -jnlpUrl http://{Your Jenkins Server}:8080/computer/{Your Jenkins Node}/slave-agent.jnlp

(您可以从http:// {Your Jenkins Server}下载slave.jar:8080 / jnlpJars / slave.jar)

编辑: 如果您正在获取黑色屏幕截图(例如,在使用Selenium或Sikuli时),请创建一个断开远程桌面的批处理文件,而不是使用常规X按钮关闭RDP会话:

%windir%\system32\tscon.exe %SESSIONNAME% /dest:console 

答案 2 :(得分:6)

我在Windows中使用该服务运行Jenkins时遇到了很多问题。 相反,我现在禁用该服务并从CMD运行它。

开放CMD

cd C:\Program Files (x86)\Jenkins

java -Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar
jenkins.war --httpPort=9091

答案 3 :(得分:0)

考虑在启动时直接运行Java从服务器,然后在服务器停机时使用某些东西进行监控和重启(例如Kiwi Restarter)。

答案 4 :(得分:0)

请检查服务(@ TestNode)确保“交互式服务检测”服务已启动,默认情况下,启动类型设置为“手动”,您可能也希望将其设置为“自动”。

enter image description here

服务启动后,当您在测试节点中运行测试时,您将看到类似下面的内容: enter image description here

单击它并选择查看消息

enter image description here

你会看到那里发生的活动。希望这会有所帮助:D

注意:如果使用其他帐户登录且无法查看“Interative Services Detection”提示,请重新启动该服务。

答案 5 :(得分:0)

我的Jenkins服务以“jenkins”用户身份运行,我所做的就是在 C:\ Windows \ system32 \ config \ systemprofile \ desktop 中创建桌面文件夹,如果64位Windows也在< strong> C:\ Windows \ SysWOW64 \ config \ systemprofile \ desktop - 然后运行完美。

答案 6 :(得分:0)

确保创建Desktop个文件夹:

  • %WINDOWS%/System32/config/systemprofile/Desktop
  • %WINDOWS%/SystemWOW64/config/systemprofile/Desktop

在将某些Java软件作为服务运行时,有时必须存在这些内容。