SIGTERM et SIGKILLCe 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
SIGKILLdocker rm -f et docker-compose kill.SIGTERM et après 30 secondes, envoyez SIGKILL si le processus persiste.Systemd
SIGTERM → 90 secondes plus tard SIGKILLUpstart
SIGTERM → 5 secondes plus tard SIGKILLSysvinit
SIGTERM → 5 secondes plus tard SIGKILLRecommended Posts