Señal de captura en el proceso de fondo secundario
No puedo atrapar una señal cuando se ejecuta en un proceso secundario / en segundo plano.
Aquí está mi script bash simple:
#!/bin/bash
echo "in child"
trap "got_signal" SIGINT
function got_signal {
echo "trapped"
exit 0
}
while [ true ]; do
sleep 2
done
Cuando ejecute esto y luego haga
kill -SIGINT (pid)
Todo funciona como se esperaba, imprime 'atrapado' y sale.
Ahora, si comienzo el mismo script desde un script padre como este:
#!/bin/bash
echo "starting the child"
./child.sh &
¿Entonces el niño ya no atrapa la señal ...?
Después de cambiar para usar SIGTERM en lugar de SIGINT, parece estar funcionando correctamente ...?