la trampa en el script de shell de estilo libre no funciona en jenkins

la trampa en el script de shell de estilo libre no funciona en jenkins

Quiero elagraciadoMatar mi trabajo de Jenkins si alguien lo aborta, así que intenté capturar la señal de cancelación y personalizar el paso de anulación usando un script de Shell.
Pero parece que Jenkins está ignorando todas las trampas y matando con fuerza de todos modos
un script de muestra para probar.

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

Estoy buscando como podemos atraparSIGNOSeñalar y personalizar el comando Kill en jenkins.

Para su información: este script funciona bien en mi sistema bash, solo necesito cambiar INT->SIGINT y así sucesivamente.

Respuesta1

Creo que está funcionando bien, solo para algunas correcciones necesarias. Si hay algún problema con la función asociada con la trampa, es decir, exit_script()no funcionará.

Lo probé eliminándolo kill -- -$$y funciona bien, se llama a la función y el proceso continúa ejecutándose.

Respuesta2

En general, en un script de shell, se captura la señal SIGTERM diciendo

trap 'exit_script' TERM

PD: Trapping KILL no funciona y enumerar QUIT dos veces no ayuda.

información relacionada