Manchmal, wenn ich einen killallBefehl über Terminal ausführe, schlägt ein Mitarbeiter meine anzuzeigenden Skripte vor oder bearbeitet sie killall -HUP.
Was macht das -HUPTeil?
Manchmal, wenn ich einen killallBefehl über Terminal ausführe, schlägt ein Mitarbeiter meine anzuzeigenden Skripte vor oder bearbeitet sie killall -HUP.
Was macht das -HUPTeil?
Antworten:
Die -HUPOption ist das Signal, das vom killallBefehl an die Prozesse gesendet wird . Es kann ein wenig schwer zu sagen sein, aber der relevante Eintrag im killallHandbuch 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 TERMgesendeten Standardsignal killallund dem HUPSignal 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 TERMSignal (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 KILLSignal zu erzwingen ). Das Programm kann das TERMSignal abfangen und ignorieren . Es muss nicht terminieren, wenn es nicht will, und es kann dieses Signal vollständig ignorieren.
Das HUPSignal (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 HUPund sie sind nicht durch Konventionen oder Dogmen dazu verpflichtet. Der Apache-Webserver empfängt beispielsweise ein HUPSignal 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 .
#FAILLeuten, die nie hinter den Schaltern lesen. Vielen Dank!
Dies -HUPist 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 -HUPFunktion nicht integriert ist. Wie im vorherigen Poster erwähnt, Apache. Es liest die Konfigurationsdateien, kann jedoch nicht erneut gestartet werden.