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
?
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
?
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 .
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.
Leggi altre domande sui tag command-line bash macos terminal