Quiero atrapar una señal de envío de Script-A.sh a Script-B.sh por lo que en Script-A.sh i utilizar el comando¿Cómo enviar una señal SIGINT desde el script al script? BASH
(SIGINT Enviar a Script-B.sh)
matanza -2 $ PID_Script-B.sh
y en Script-B.sh i coger la función de la señal y de extinción
trampa 'Clean' 2
No funciona, en su lugar, el Script-B.sh se elimina de inmediato sin realizar el Clean !!
lo que noto también que si quiero enviar SIGINT de terminal a cualquier secuencia de comandos que atrapa a él, un ctrl-c
serán apresados correctamente, pero no si se especifica la señal a través del comando kill -2 $pid_of_script
Cualquier idea acerca la diferencia entre los dos métodos para enviar el SIGINT (ctrl-c
VS kill -2 $pid_of_script
), y cómo puedo enviar un SIGINT de un script a otro?
Saludos,
depurador
Ese primer bit de bash (1) parece una explicación Además, * zsh * parece funcionar bien. –
Perdón por esta respuesta tardía. Tienes razón, no todas las señales pueden atraparse para los niños, sino algunas. SIGUSR1 funcionó tanto para mí como para SIGTERM, pero no en todas las versiones de bash, porque obtuve una falla de segmentación de un script en bash 3.00.16 cuando intentaba enviar la señal de padre a hijo. Otras veces, usando la misma versión, simplemente ignorará la señal sin atraparla (en el nivel de niños). Pero las versiones más nuevas funcionan bien y propagan correctamente todas las señales. Muchas gracias por su ayuda – Debugger
ok. Ejecute scriptA shell script y llame a scriptB (source it) como ". scriptB.sh param1 param2 ... paramN", de esa forma, se mantendrá limpio para Sig 2/INT –