当用户登录Windows时,保持jenkins slave脱机

时间:2013-01-31 20:43:40

标签: windows jenkins continuous-integration jenkins-plugins

当用户开始使用slave时,有没有办法配置Jenkins将Windows slave标记为脱机?

编辑:开始使用我指的是用户登录。

2 个答案:

答案 0 :(得分:1)

由于Jenkins slave can be registered as a Windows service,一种方法是确保当前没有登录用户。

可以设想一个正常运行的Windows任务,它将检查用户是否已登录,并且:

  • 如果有,停止服务。
  • 如果没有,(重新)启动相同的Jenkins从属代理Windows服务。

要查看登录的用户,请参阅“From WindowsService how can I find currently logged in user from C#?”。

答案 1 :(得分:1)

一种可能的解决方案是使用Slave Prerequisites Plugin。 它允许根据脚本添加作业先决条件:

  

设置要在作业可以运行的作业之前在从属节点上运行的脚本。   如果返回非0状态,则该节点将被否决以获得作业   执行,并选择另一个节点,作业   将返回构建队列,等待可用节点匹配   它的先决条件。

使用以下Windows批处理脚本:

python.exe -c "import psutil; assert len(psutil.get_users())==0"

你必须得到psutil,但你可以用纯Windows shell制作东西。最明显的缺点是我们正在经历许多系统,而不是仅使用标记为可用的系统。