Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> sistemi >> Unix >> .

Qual è il comando trap su Unix?

Il comando `trap` in unix viene utilizzato per segnali maneggevoli , che sono eventi asincroni che possono interrompere un processo di esecuzione. I segnali vengono utilizzati per avvisare un processo di vari eventi, come:

* 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