Cuando estamos programando algún script puede interesarnos mandar señales mientras se está ejecutando. Para lograr que el script responda a las señales de kill utilizaremos la orden trap, que tiene la siguiente sintaxis.
trap acción señales
Los parámetros son:
- acción: Definiremos que ejecutar cuando reciba la señal.
- señales: Es la lista de señales ante las que responderá el script.
El principal uso de esto es controlar la salida de nuestro scripts, de forma que sea un cierre controlado, sin dejar archivos abiertos o temporales sin borrar.
Un ejemplo
#!/bin/bash trap 'echo "Señal recibida"; exit' SIGKILL while true do echo "Soy un bucle" done
En este caso cuando ejecutamos el script, si le enviamos un SIGKILL escribirá “Señal recibida” en el terminal y terminará.
En este punto también comentar que podemos usar varias lineas de trap para actuar de distinta forma ante distintas señales.
#!/bin/bash trap 'echo "Señal SIGUSR1"; exit' SIGUSR1 trap 'echo "Señal SIGUSR2"; exit' SIGUSR2 while true do echo "Soy un bucle" done
Responderá diferente ante las señales SIGUSR1 y SIGUSR2.