6

当用户开始使用从站时,有什么方法可以配置 Jenkins 以将 Windows 从站标记为离线?

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

4

2 回答 2

1

由于Jenkins 从站可以注册为 Windows 服务,因此一种方法是确保当前没有登录用户。

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

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

要检查谁已登录,请参阅“从 WindowsService 我如何从 C# 中找到当前登录的用户? ”以了解一种方法。

于 2013-02-03T16:59:38.950 回答
1

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

设置要在从节点上运行的脚本,然后才能在它们上运行作业。如果返回非 0 状态,则该节点将被拒绝执行作业,并且将选择另一个节点,或者该作业将返回构建队列,等待可用节点匹配其先决条件。

使用以下 Windows 批处理脚本:

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

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

于 2013-02-06T08:00:28.217 回答