trap no shell script freestyle não funciona no jenkins

trap no shell script freestyle não funciona no jenkins

eu quero ograciosomatar meu trabalho Jenkins se alguém o abortar. Então tentei capturar o sinal de aborto e personalizar a etapa de eliminação usando shell script.
Mas parece que Jenkins está ignorando toda a armadilha e matando com força de qualquer maneira,
exemplo de script para testar

exit_script() {
    echo "Printing something special!"
    echo "traped &  killed " >>text.txt
    echo "Maybe executing other commands!"
    trap - INT TERM ABRT  QUIT HUP # clear the trap
    kill -- -$$ # Sends SIGTERM to child/sub processes
}

trap 'exit_script' INT KILL ABRT QUIT HUP

echo "pid is $$"
echo "pid is $$" > test.txt
count=0
sleep 10
echo 1
echo 1 >>test.txt
sleep 10
echo 2
echo 2 >>test.txt
sleep 10
echo 3
echo 3 >>test.txt
sleep 10
echo 4
echo 4 >>test.txt
sleep 10
echo 5
echo 5 >>test.txt
sleep 10
echo 6
echo 6 >>test.txt
exit 0

Estou procurando como podemos prenderSIGTERMsinalizar e personalizar o comando kill no jenkins.

Para sua informação: Este script funciona bem no bash do meu sistema, só preciso alterar INT-> SIGINT e assim por diante.

Responder1

Acho que está funcionando bem, apenas para algumas correções necessárias. Se houver algum problema com a função associada ao trap, ou seja, exit_script()não funcionará.

Eu testei removendo kill -- -$$e funciona bem, a função está sendo chamada e o processo continua em execução.

Responder2

Em geral, em um script de shell, você captura o sinal SIGTERM dizendo

trap 'exit_script' TERM

PS Trapping KILL não funciona e listar QUIT duas vezes não ajuda.

informação relacionada