Viele Unix-Programme akzeptieren Signale wie USR1
und USR2
. Um beispielsweise die ausführbare Datei für Nginx im laufenden Betrieb zu aktualisieren, senden Sie kill -USR2
.
Ich verstehe, dass dies USR1
ein "benutzerdefiniertes" Signal ist, was bedeutet, dass jeder, der das Programm erstellt hat, es verwenden kann, um "herunterfahren" oder "Ihre Protokolle sichern" oder "tausendmal drucken" oder was auch immer zu bedeuten. Aber ich verstehe nicht, warum sie diesen beliebigen Namen verwenden müssen. Warum nicht kill -UPGRADE
oder kill -GRACEFUL_SHUTDOWN
? Erlaubt Unix nur bestimmte Signale?
Währenddessen verwendet Nginx auch die folgenden Signale (siehe Dokumentation ):
- TERM, INT : Schnellabschaltung
- BEENDEN : Anmutiges Herunterfahren
- HUP :
- Konfiguration neu laden
- Starten Sie die neuen Worker-Prozesse mit einer neuen Konfiguration
- Fahren Sie die alten Arbeitsprozesse ordnungsgemäß herunter
- USR1 : Öffnen Sie die Protokolldateien erneut
- USR2 : Upgrade ausführbar im laufenden Betrieb
- WINCH : Fahren Sie die Worker-Prozesse ordnungsgemäß herunter
HUP? WINDE? Was ist der Grund für diese Namen? Wo kann ich mehr darüber erfahren?