* Segnali di terminazione: Questi segnali vengono inviati a un processo per terminarlo, ad esempio, `Sigint` (interrupt) o` Sigterm` (termina).
* Segnali di errore: Questi segnali vengono inviati a un processo per indicare un errore, ad esempio "Sigsegv" (violazione della segmentazione).
* Altri segnali: Esistono vari altri segnali, come `Sigusr1` e` Sigusr2`, che possono essere utilizzati per scopi personalizzati.
How `trap` funziona
Il comando `trap` consente di specificare quali azioni dovrebbero essere intraprese quando un particolare segnale viene ricevuto da un processo. Ha la seguente sintassi:
`` `Bash
Segnale "comando" trap
`` `
* `Command` :Questo è il comando o la sequenza di comandi che verranno eseguiti quando viene ricevuto il segnale specificato.
* `Signal` :Questo è il numero o il nome del segnale che si desidera intrappolare.
Esempi
1. Gestione `Sigint` (interrupt):
`` `Bash
trap 'echo "interrotta! uscita ..."; uscita 'int
`` `
Questo stamperà il messaggio "Interruptato! Uscita ..." e quindi uscirà dalla sceneggiatura quando viene premuto `Ctrl+C` (che invia il segnale` Sigint`).
2. Ignorando `SIGQUIT` (ESCI):
`` `Bash
trap '' smettila
`` `
Ciò ignorerà il segnale `SIGQUIT` (tipicamente inviato da` ctrl+\ `) e impedirà che termina lo script.
3. Esecuzione di uno script di pulizia:
`` `Bash
Trap 'Cleanup.sh' uscita
`` `
Ciò eseguirà lo script `Cleanup.sh` quando il processo esce, indipendentemente dal motivo della risoluzione.
Note importanti:
* Il comando `trap` influisce solo sul processo di shell corrente.
* Se si desidera gestire i segnali in un processo figlio, è necessario utilizzare `trap` all'interno di quel processo figlio.
* Puoi utilizzare l'opzione `-l` con` trap` per elencare tutti i segnali disponibili.
In sintesi, `trap` fornisce un potente meccanismo per la gestione dei segnali e il controllo del comportamento degli script UNIX in risposta a vari eventi.
sistemi © www.354353.com