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