我使用jenkins主从配置来捕获产品的性能指标。我们已经观察到jenkins-slave倾向于积累内存,从而影响被捕获的性能指标。
为了确保捕获的指标的一致性,我们正在考虑每天从主机重新启动jenkins slave,当从主机上没有作业运行时。这可行吗?
我们如何才能做到这一点?
注意:使用jenkins-slave作为服务是不可行的,因为我们还会遇到其他的安全访问问题。
发布于 2016-02-27 18:35:57
我知道这个答案来得有点晚:
这就是我出于同样的原因做了同样的事情,不确定这是否是实现这一目标的最好方法,但它解决了我们的许多问题:
适用于Windows计算机的 :
适用于Mac计算机的 :
这是我的脚本中的“执行shell”部分,用于重启用于自动化的所有机器:
distro=`uname`
if [ "$distro" = "Windows_NT" ] || [ "$distro" = "WindowsNT" ] ;then
echo "Restarting Windows Machine...."
shutdown -r -f
else
echo "Restarting Mac Machine...."
sudo shutdown -r now
fiPS:
它与问题并不完全相关,但对于您指定的情况可能很有用。最好在Windows计算机启动时添加一个批处理脚本来清理临时文件。将以下内容添加到Windows机的启动文件夹中的批处理脚本(比如cleanTemp.bat)中。(对于Windows10,C:\Users\AppData\Roaming\Microsoft\Windows\Start菜单\程序\启动)
rmdir %temp% /s /q
md %temp%发布于 2015-06-15 22:01:30
如果你仍然需要一个答案:https://wiki.apache.org/general/Jenkins#How_do_I_restart_a_Jenkins_Unix_Slave.3F
不过,我刚刚断开了连接,然后我看到进程在从进程中死亡了。我不需要手动杀死他们。然后再次启动从属程序,就是这样。
这在web用户界面中很好用。我还没有为此搜索CLI。
发布于 2018-05-14 16:50:42
导入hudson.model。* def target_slave_param = " target_slave“def解析器= build.buildVariableResolver def target_slave= resolver.resolve(target_slave_param) println "target_slave is:${target_slave}”def status = 0;//do{ println“查找${target_slave}";slave = Hudson.instance.slaves.find({it.name == target_slave});if (slave != null) { computer = slave.getComputer();if (computer.isOffline()) { println“错误!$target_slave脱机。”;status = 1;} else { println "OK:$target_slave is online";}} else { println“找不到从属$target_slave!”;status = 1;} //}
https://stackoverflow.com/questions/29165080
复制相似问题