我们如何在hudson上捕获作业的中止信号,以便我可以在中止的情况下执行一些后续步骤(我在hudson上运行一个有后台运行shell脚本的作业)?
答案 0 :(得分:4)
我和Jenkins一起经历过,而不是哈德森,(Jenkins是哈德森的一个分支)Jenkins通过Sun的JRE java.lang.UnixProcess.destroyProcess在Unix上发送一个SIGTERM,这是通过TerminateProcess API完成的。
所以你可以通过这种方式在shell脚本中使用“trap”
#!/bin/bash
getAbort()
{
echo "Abort detected"
# other commands here if any...
}
trap 'getAbort; exit' SIGTERM