No puedo capturar una señal cuando se ejecuta en un proceso secundario/en segundo plano.Señal de captura en el proceso de fondo secundario
Aquí es mi simple script bash:
#!/bin/bash
echo "in child"
trap "got_signal" SIGINT
function got_signal {
echo "trapped"
exit 0
}
while [ true ]; do
sleep 2
done
Cuando se ejecuta este y más tarde hacer
kill -SIGINT (pid)
todo funciona como se espera, se imprime 'atrapado' y sale.
Ahora, si comienzo a la misma escritura de un guión de los padres de esta manera:
#!/bin/bash
echo "starting the child"
./child.sh &
Entonces el niño no atrapa la señal más ....?
Después de cambiar para usar SIGTERM en lugar de SIGINT, parece estar funcionando correctamente ...?