SIGKILL non manca mai di uccidere un processo in esecuzione, questo è il punto. Esistono altri segnali per dare all'applicazione la possibilità di reagire.
Il comportamento predefinito di SIGINT, SIGTERM, SIGQUIT e SIGHUP è di uccidere il programma. Tuttavia, alle applicazioni è consentito installare un gestore per questi segnali. Quindi il comportamento reale delle applicazioni quando ricevono questi segnali è una questione di convenzione (che ogni applicazione può o meno seguire), non di progettazione del sistema.
SIGINT è il "più debole" del lotto. Il suo significato convenzionale è "interrompere ciò che stai facendo in questo momento e attendere ulteriori input dell'utente". È il segnale generato da Ctrl+ Cin un terminale. I programmi non interattivi generalmente lo trattano come SIGTERM.
SIGTERM è il segnale di uccisione "normale". Indica all'applicazione di uscire in modo pulito. L'applicazione potrebbe richiedere del tempo per salvare il suo stato, per liberare risorse come file temporanei che altrimenti rimarrebbero indietro, ecc. Un'applicazione che non vuole essere interrotta durante un'applicazione critica potrebbe ignorare SIGTERM per un po '.
SIGHUP è quasi uguale a SIGTERM in termini di durezza, ma ha un ruolo specifico perché viene automaticamente inviato alle applicazioni in esecuzione in un terminale quando l'utente si disconnette da quel terminale (etimologicamente, perché l'utente si stava connettendo tramite una linea telefonica e il modem riattaccato). SIGHUP è spesso involontario, a differenza di SIGTERM che deve essere inviato esplicitamente, quindi le applicazioni dovrebbero cercare di salvare il proprio stato su SIGHUP. SIGHUP ha anche un significato convenzionale completamente diverso per le applicazioni non rivolte all'utente ( daemon ), che è quello di ricaricare il loro file di configurazione.
SIGQUIT è il più duro dei segnali ignorabili. È pensato per essere usato quando un'applicazione si comporta male e deve essere uccisa ora, e per impostazione predefinita ha tradizionalmente lasciato un file di dump di base (sistemi moderni in cui la maggior parte degli utenti non saprebbe quale file di base tende a non produrli per impostazione predefinita) . Le applicazioni possono impostare un gestore, ma dovrebbero fare ben poco (in particolare non salvare alcuno stato) perché l'intento di SIGQUIT deve essere usato quando qualcosa è seriamente sbagliato.
HUP
non significa necessariamente che il programma verrà chiuso. Alcuni programmi utilizzanoSIGHUP
per ricaricare i file di configurazione.SIGKILL
non riesce, o piuttosto viene posticipato, quando il processo è in modalità di sospensione ininterrotta .