Das Folgende ist eine kurze Beschreibung von "SIGTERM" und "SIGKILL":
SIGTERM
: Beendigungsanforderungssignal. Der Prozess kann nach Erhalt noch ausgeführt werden.SIGKILL
: Zwangsbeendigung. Der Prozess kann nicht mehr ausgeführt werden.Ein ordnungsgemäßes Herunterfahren bedeutet, dass ein Prozess oder dergleichen die Annahme neuer Arbeiten schließt, die laufenden Arbeiten bis zum besten Punkt verarbeitet und dann sicher beendet wird. Das Bild ist "speichert".
Wenn ein Kill auftritt, befindet sich das System möglicherweise in einem halbfertigen Zustand oder die Daten sind inkonsistent. Ein ordnungsgemäßes Herunterfahren ist eine Schutzmaßnahme, um dies zu verhindern.
Wenn Sie beispielsweise das ordnungsgemäße Herunterfahren eines HTTP-Servers betrachten, akzeptiert der HTTP-Server beim Eintritt in die Beendigungsphase keine neuen Anforderungen, die vorhandenen Anforderungen werden jedoch beendet, nachdem eine ordnungsgemäße Antwort zurückgegeben wurde.
Docker, Kubernetes usw. sollten nach einem SIGTERM-Signal ein "SIGTERM" -Signal senden, damit die Anwendung ordnungsgemäß heruntergefahren werden kann, und dann ein "SIGKILL" senden, um das Beenden nach einer bestimmten Nachfrist zu erzwingen. Es ist geworden.
Die Nachfrist hängt vom System ab. Die Nachfrist für jedes System ist unten aufgeführt. Bitte beziehen Sie sich bei der Implementierung von Graceful Shutdown darauf.
docker stop
-t
und --time
geändert werden.docker kill
docker rm -f
und docker-compose kill
.Systemd
SIGTERM
→ 90 Sekunden später SIGKILL
Upstart
SIGTERM
→ 5 Sekunden später SIGKILL
Sysvinit
SIGTERM
→ 5 Sekunden später SIGKILL
Recommended Posts