Tengo el siguiente script:
#!/bin/bash
echo "We are $$"
trap "echo HUP" SIGHUP
cat # wait indefinitely
Cuando envío SIGHUP(usando kill -HUP pid), no pasa nada.
Si cambio ligeramente el script:
#!/bin/bash
echo "We are $$"
trap "kill -- -$BASHPID" EXIT # add this
trap "echo HUP" SIGHUP
cat # wait indefinitely
... entonces el script hace echo HUPlo correcto al salir (cuando presiono Ctrl + C):
roger@roger-pc:~ $ ./hupper.sh
We are 6233
^CHUP
¿Que esta pasando? ¿Cómo debo enviar una señal (no necesariamente tiene que ser SIGHUP) a este script?
while true; do read; doneal final, de lo contrario, ingresar texto hace que se cierre también, y quiero que se cierre en Ctrl + C.
catfinalice el proceso. Pruebe su secuencia de comandos original y presioneCtrl+Dpara quecatsalga el proceso. Mientras elcatproceso está en primer plano,HUPno se actúa sobre la señal. Intente nuevamente concatreemplazado porread(un shell incorporado).