Maison > développement back-end > Golang > le corps du texte

Comment vider la goroutine du processus de point d'entrée du conteneur ?

王林
Libérer: 2024-02-08 23:33:29
avant
910 Les gens l'ont consulté

如何转储容器入口点进程的 goroutine?

l'éditeur php Strawberry vous présentera comment vider la goroutine du processus de point d'entrée du conteneur. Lors du développement d'applications conteneurisées à l'aide du langage Go, nous devons souvent comprendre et déboguer les goroutines en cours d'exécution. Le dumping de la goroutine du processus de point d'entrée du conteneur est une méthode de débogage courante, qui peut nous aider à analyser et à résoudre les problèmes de l'application. Dans cet article, nous expliquerons en détail comment utiliser les outils et techniques pertinents pour vider la goroutine du processus de point d'entrée du conteneur, et fournirons des étapes spécifiques et des exemples de code. Explorons ensemble ce sujet amusant et pratique !

Contenu de la question

J'ai un problème où l'un des conteneurs ne se termine pas lorsque l'application est arrêtée par docker-compose up 运行的应用程序。当通过 docker-compose stop. Le conteneur exécute un processus écrit en Go, je souhaite donc vider la goroutine de ce processus pour voir où le processus est bloqué.

Je peux docker ps 查看容器,然后 docker exec -it <container-id> bash 进入容器,但是一旦我 kill -QUIT <process id> , à la fin du processus, le conteneur s'arrête également, donc je ne peux pas obtenir le dump goroutine.

Comment obtenir un dump goroutine dans ce cas ?

Solution de contournement

Le conteneur est également arrêté, je ne peux donc pas récupérer le dump goroutine.

Je pense que vous pouvez obtenir des dumps goroutines à partir des journaux du conteneur, à condition :

  1. docker-compose stop Arrêtez d'exécuter des conteneurs sans les supprimer
  2.  ;
  3. kill -quit <process id> Videz la goroutine sur stderr.

Voici la commande docker pour obtenir le journal du conteneur (-n précise le nombre de lignes à afficher à partir de la fin du journal) :

$ docker logs -n 1000 [container-name]
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal