Manchmal, wenn ich einen killall
Befehl über Terminal ausführe, schlägt ein Mitarbeiter meine anzuzeigenden Skripte vor oder bearbeitet sie killall -HUP
.
Was macht das -HUP
Teil?
Manchmal, wenn ich einen killall
Befehl über Terminal ausführe, schlägt ein Mitarbeiter meine anzuzeigenden Skripte vor oder bearbeitet sie killall -HUP
.
Was macht das -HUP
Teil?
Antworten:
Die -HUP
Option ist das Signal, das vom killall
Befehl an die Prozesse gesendet wird . Es kann ein wenig schwer zu sagen sein, aber der relevante Eintrag im killall
Handbuch lautet:
-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.
Der Unterschied zwischen dem TERM
gesendeten Standardsignal killall
und dem HUP
Signal hängt weitgehend von dem Programm ab, an das Sie das Signal senden. Am Programmende erhalten sie einen anderen Alarmsignalwert. So kann das Programm die Interrupts abfangen und basierend auf dem Wert entscheiden, ob sie das eine oder andere tun sollen.
Das TERM
Signal (in der Vergangenheit das "Beendigungssignal") wird normalerweise an ein Programm gesendet, um dessen Beendigung anzufordern (was eine politischere Version ist , um dessen Beendigung mit dem KILL
Signal zu erzwingen ). Das Programm kann das TERM
Signal abfangen und ignorieren . Es muss nicht terminieren, wenn es nicht will, und es kann dieses Signal vollständig ignorieren.
Das HUP
Signal (in der Vergangenheit das "Aufhängesignal") wird normalerweise an ein Programm gesendet, um einen Neustart anzufordern und dabei die gesamte Konfiguration neu zu lesen. Das tatsächliche Verhalten des Programms hängt von der programmspezifischen Implementierung ab. Nicht alle Programme fangen an HUP
und sie sind nicht durch Konventionen oder Dogmen dazu verpflichtet. Der Apache-Webserver empfängt beispielsweise ein HUP
Signal und liest alle Konfigurationsdateien erneut, startet jedoch keine Prozesse neu.
Wenn Sie die Prozesse wirklich beenden möchten und sich keine Gedanken darüber machen möchten, ob das Signal abgefangen und befolgt werden soll, wird das Signal verwendet KILL
. Es kann nicht abgefangen oder ignoriert werden und führt zum Abbruch des Prozesses.
Eine gute Übersicht über die verfügbaren POSIX-Signale finden Sie in diesem Wikipedia-Artikel .
#FAIL
Leuten, die nie hinter den Schaltern lesen. Vielen Dank!
Dies -HUP
ist das "Auflegen" -Signal, das dazu führen kann, dass eine App nicht mehr reagiert, ihre Konfigurationsdatei liest und dann erneut startet. Es ist nicht unbedingt besser als es ohne zu benutzen.
killall Finder
und
killall -HUP Finder
Sind respektvoll gleich. In OS X wird Finder neu gestartet, aber die Konfigurationsdatei wird erneut gelesen. Dies ist möglicherweise nicht der Fall, wenn in der ausgeführten Anwendung die -HUP
Funktion nicht integriert ist. Wie im vorherigen Poster erwähnt, Apache. Es liest die Konfigurationsdateien, kann jedoch nicht erneut gestartet werden.