Cosa fa -HUP quando usato con killall?

12

A volte, quando eseguo un comando killall da Terminal, un collaboratore suggerisce o modifica i miei script per mostrare killall -HUP .

Che cosa fa la parte -HUP ?

    
posta Danijel-James W 28.09.2013 - 17:01
fonte

2 risposte

17

L'opzione -HUP è il segnale che viene inviato ai processi dal comando killall . Può essere un po 'difficile da dire, ma la voce pertinente in killall manuale è:

-SIGNAL     Send a different signal instead of the default TERM.  The signal may be specified
            either as a name (with or without a leading SIG), or numerically.

La differenza tra il segnale predefinito TERM che killall invia e il segnale HUP dipende in gran parte dal programma a cui stai inviando il segnale. Alla fine del programma, ricevono un diverso valore del segnale di interruzione. Quindi il programma può intercettare gli interrupt e decidere, in base al valore, se devono fare una cosa o l'altra.

Il segnale TERM (storicamente il "segnale di terminazione") viene solitamente inviato a un programma per richiederne la terminazione (che è una versione politer di forzare la sua terminazione con il segnale KILL ) . Il programma è libero di catturare e ignorare il segnale TERM . Non deve terminare se non lo desidera e può ignorare completamente questo segnale.

Il segnale HUP (storicamente il "segnale di interruzione") viene solitamente inviato a un programma per richiedere il riavvio e la rilettura di tutta la sua configurazione nel processo. Il comportamento effettivo del programma dipende dall'implementazione specifica del programma. Non tutti i programmi catturano HUP e non sono richiesti per convenzione o dogma. Ad esempio, il server Web Apache catturerà un segnale HUP e rileggerà tutti i suoi file di configurazione ma non riavvierà alcun processo.

Se vuoi veramente terminare i processi e non preoccuparti se prenderanno e obbediranno al segnale usa il segnale KILL . Non può essere catturato o ignorato e comporta la chiusura del processo.

Per una buona recensione dei segnali POSIX disponibili vedi questo articolo di Wikipedia .

    
risposta data 28.09.2013 - 17:51
fonte
1

Il -HUP è il segnale di "blocco" che può far scattare l'arresto di un'applicazione, leggere il suo file di configurazione e ricominciare. Non è necessariamente meglio di usarlo senza.

killall Finder

e

killall -HUP Finder

Sono rispettosamente uguali. In OS X Finder verrà riavviato, ma rileggerà il suo file di configurazione. Questo potrebbe non essere vero se l'applicazione in esecuzione non ha la funzione -HUP incorporata in essa. Come il precedente manifesto menzionò Apache. Legge i suoi file di configurazione, ma non può avviarsi di nuovo.

    
risposta data 29.09.2013 - 11:13
fonte

Leggi altre domande sui tag