我已按照本指南在Windows 8上安装jenkins slave作为服务:
我需要运行与桌面交互的作业(运行打开浏览器的应用程序等)。因此,在我将slave作为服务安装后(运行从master下载的jnlp),我已将服务“Log on”更改为“允许与显示交互”。
由于某种原因,它只能为“本地系统帐户”启用此功能,即使它建议以指定用户身份运行服务,例如。詹金斯。
但是当我执行作业时没有任何反应,浏览器没有打开。如果我改为停止服务并通过jnlp文件启动从服务器,则作业运行良好 - 浏览器已打开。
当运行jenkins windows slave作为服务时,有没有人与桌面交互?
答案 0 :(得分:9)
服务自会话0中的Vista开始运行,第一个用户现在处于会话1中。因此您无法再进行交互。这称为会话0隔离。
Microsoft解释了这个here和here。您必须使用使用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)确保“交互式服务检测”服务已启动,默认情况下,启动类型设置为“手动”,您可能也希望将其设置为“自动”。
服务启动后,当您在测试节点中运行测试时,您将看到类似下面的内容:
单击它并选择查看消息
你会看到那里发生的活动。希望这会有所帮助: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软件作为服务运行时,有时必须存在这些内容。