Segnali linux

NumeroNomeSignificato
1SIGHUPHang Up: ricevuto quando un processo è stato lanciato da terminale, e il terminale muore all’improvviso.
2SIGINTSegnale di Interrupt dell’utente (Ctrl+C).
3SIGQUITSegnale di Quit dell’utente (Ctrl+D).
4SIGILLIllegal instruction: un pezzo di codice macchina che non può essere interpretato dalla CPU.
5SIGTRAPUsato principalmente da debugger e program tracer.
6SIGABRTLanciato quando all’interno del codice viene eseguita la funzione abort().
7SIGBUSAccesso errato alla memoria, che può causare problemi di allineamento.
8SIGFPENel programma è stata lanciata un’eccezione floating point.
9SIGKILLTerminazione immediata del processo, senza fare alcuna operazione di pulizia.
10SIGUSR1Ad uso dei programmatori per le loro necessità.
11SIGSEGVTentativo di accesso a memoria non allocata dal processo (es. buffer overflow).
12SIGUSR2Ad uso dei programmatori per le loro necessità.
13SIGPIPEUsato quando un processo (produttore) produce un output inviato ad un altro processo (consumatore); se il consumatore muore improvvisamente, questo segnale viene inviato al produttore.
14SIGALRMSe un processo richiede una “wake up call” al sistema operativo, con una chiamata alla funzione alarm(), questo segnale è contenuto nella “wake up call”.
15SIGTERMLanciato da qualcuno che termina il processo.
16SIGCHLDLanciato quando un processo genera uno o più processi figli con la funzione fork().
17SIGCONTInviato per far ripartire un processo che è stato interrotto con un SIGSTOP.
18SIGSTOPInviato per interrompere un processo (in futuro si può far ripartire con SIGCONT).
19SIGTSTPTerminal Stop: segnale di Stop dell’utente da terminale (Ctrl+Z).
20SIGTTINLa sola differenza tra SIGTSTP e SIGSTOP è che la pausa è solo l’azione predefinita per SIGTSTP ma è l’azione necessaria per SIGSTOP. Questo processo può scegliere di gestire SIGTSTP in modo diverso ma non ci sono opzioni per SIGSTOP.
21SIGTOUQuando un processo in background cerca di scrivere l’output sul suo terminale, viene inviato il segnale SIGTOU dal sistema operativo. La risposta tipica si basa su SIGTTIN.
22SIGURGCon l’aiuto della connessione di rete, il sistema operativo invia il segnale SIGURG quando vengono inviati dati fuori banda “urgenti”.
23SIGXCPUIl sistema operativo invia il segnale SIGXCPU al processo che supera il suo limite di CPU. Con il comando shell (“ulimit -t unlimited”), possiamo annullare il limite di CPU prima di eseguire tale processo, anche se ci sono maggiori possibilità che qualcosa sia andato storto se si raggiunge il limite di CPU in esecuzione.
24SIGXFSZSe c’è un processo che ha cercato di creare un file che è sopra la dimensione limite, il sistema operativo gli invia un segnale SIGXFSZ. Possiamo anche annullare il limite di dimensione del file utilizzando il comando shell (“ulimit -t unlimited”), anche se è più probabile che qualcosa sia andato storto se abbiamo raggiunto il limite di dimensione del file prima dell’esecuzione.
25SIGVTALRMSia SIGVTALR che SIGALRM sono uguali, tranne che il segnale SIGALRM viene inviato dopo che è trascorso un certo periodo di real-time, mentre SIGVTALRM viene inviato dopo che è trascorso del tempo per eseguire il processo.
26SIGPROFSIGPROG è come SIGVTALRM e SIGALRM, mentre SIGALRM viene inviato dopo che è trascorso un certo periodo di real-time, SIGPROG viene inviato dopo che è trascorso del tempo per eseguire il processo e il codice di sistema viene eseguito per conto del processo.
27SIGWINCHUsato da un processo quando una delle sue finestre viene ridimensionata.
28SIGIO(SIGIO è anche chiamato SIGPOLL). Un processo che può organizzare l’invio di questo segnale è pronto a farlo quando c’è qualche processo di input o un canale di output che ha accettato di scrivere.
29SIGPWRUn servizio di gestione dell’alimentazione ha inviato questo segnale ai processi per mostrare che l’alimentazione era stata modificata per un’alimentazione di emergenza a breve termine.
30SIGSYSNon usato.