SIGTERM
et SIGKILL
Ce qui suit est une brève description de SIGTERM
et SIGKILL
:
SIGTERM
: signal de demande de terminaison. Le processus peut toujours s'exécuter après avoir reçu cela.SIGKILL
: résiliation forcée. Le processus ne peut plus s'exécuter.Un arrêt progressif signifie qu'un processus ou similaire ferme l'acceptation d'un nouveau travail, traite le travail en cours au meilleur point, puis se termine en toute sécurité. L'image est "magasins".
Lorsqu'un kill se produit, le système peut être dans un état semi-fini ou les données peuvent être incohérentes. Un arrêt progressif est une mesure de protection pour éviter que cela ne se produise.
Par exemple, en prenant comme exemple l'arrêt normal d'un serveur HTTP, lorsque le serveur HTTP entre dans la phase de terminaison, il n'acceptera pas de nouvelles demandes, mais les demandes existantes seront arrêtées après avoir renvoyé une réponse appropriée.
Docker, Kubernetes, etc. devraient envoyer un signal SIGTERM
après avoir envoyé un signalSIGTERM
afin que l'application puisse être arrêtée en douceur, puis envoyer un SIGKILL
s'il n'a pas été arrêté après une certaine période de grâce. Il est devenu.
SIGTERM
à SIGKILL
comme Docker et KubernetesLa période de grâce dépend du système. La période de grâce pour chaque système est indiquée ci-dessous. Veuillez vous y référer lors de la mise en œuvre de l'arrêt grâce.
docker stop
SIGTERM
et après 10 secondes, envoyez SIGKILL
si le processus persiste.-t
et --time
.docker-compose stop
et docker-compose down
.docker kill
SIGKILL
docker rm -f
et docker-compose kill
.SIGTERM
et après 30 secondes, envoyez SIGKILL
si le processus persiste.Systemd
SIGTERM
→ 90 secondes plus tard SIGKILL
Upstart
SIGTERM
→ 5 secondes plus tard SIGKILL
Sysvinit
SIGTERM
→ 5 secondes plus tard SIGKILL
Recommended Posts