0

由于在Jenkins的构建过程中挂起python进程(yandex-tank)存在一些问题(之后构建无法停止),我需要使用一些额外的带有超时的kill命令或使用超时命令本身来停止这个有问题的进程:

timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"

timeout 发送默认 (15) 终止信号,但之后构建进入状态 FAILED。

是否有任何解决方法或特殊的终止信号可以使构建成功?

4

2 回答 2

4

您是否尝试过手动退出代码覆盖?

timeout $TIMEOUT yandex-tank-jmeter -i -o "jmeter.jmx=$WORKSPACE/$TEST_PLAN"; RES=$?
//If  the  command timed out, then RES equals 124.
...
//at the end of job scenario:
if [ $RES -eq 124 ]; then RES=0;
fi
exit $RES  
于 2015-10-28T11:48:31.477 回答
0

根据“执行外壳”步骤的 Jenkins 文档:

默认情况下,将使用“-ex”选项调用 shell。

因此,Jenkins 将所有 shell 代码放入一个 shell 脚本文件中,在 temp 目录中,例如 /tmp/sh/jenkins45723947385985.sh,然后执行如下:

/bin/sh -xe /tmp/sh/jenkins45723947385985.sh

这可以在作业的控制台输出中看到。

-xe 中的 e 选项表示一旦出现错误,shell 将立即退出。要更改此行为,请将自定义 shebang 行添加到 Jenkins shell 脚本的开头,例如

#!/bin/sh -x

一旦发生错误,Jenkins 将不再终止。

于 2018-08-30T16:16:10.150 回答