Wie entleere ich die Goroutine des Container-Einstiegspunktprozesses?

王林
Freigeben: 2024-02-08 23:33:29
nach vorne
884 Leute haben es durchsucht

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

Der PHP-Editor Strawberry zeigt Ihnen, wie Sie die Goroutine des Container-Einstiegspunktprozesses sichern. Bei der Entwicklung von Containeranwendungen mit der Go-Sprache müssen wir häufig laufende Goroutinen verstehen und debuggen. Das Dump der Goroutine des Container-Einstiegspunktprozesses ist eine gängige Debugging-Methode, die uns bei der Analyse und Lösung von Problemen in der Anwendung helfen kann. In diesem Artikel besprechen wir ausführlich, wie Sie relevante Tools und Techniken verwenden, um die Goroutine des Container-Einstiegspunktprozesses zu sichern, und stellen spezifische Schritte und Beispielcode bereit. Lassen Sie uns gemeinsam dieses unterhaltsame und praktische Thema erkunden!

Frageninhalt

Ich habe ein Problem, bei dem einer der Container nicht beendet wird, wenn die Anwendung von docker-compose up 运行的应用程序。当通过 docker-compose stop gestoppt wird. Der Container führt einen in Go geschriebenen Prozess aus, daher möchte ich die Goroutine dieses Prozesses sichern, um zu sehen, wo der Prozess hängen bleibt.

Ich kann docker ps 查看容器,然后 docker exec -it <container-id> bash 进入容器,但是一旦我 kill -QUIT <process id>, da der Prozess beendet wird, stoppt auch der Container, sodass ich den Goroutine-Dump nicht abrufen kann.

Wie bekomme ich in diesem Fall einen Goroutine-Dump?

Workaround

Der Container wird ebenfalls angehalten, sodass ich den Goroutine-Dump nicht abrufen kann.

Ich denke, Sie können Goroutine-Dumps aus den Protokollen des Containers erhalten, vorausgesetzt:

  1. docker-compose stop Stoppen Sie die Ausführung von Containern, ohne sie zu löschen
  2. kill -quit <process id> Goroutine nach stderr verschieben.

Das Folgende ist der Docker-Befehl zum Abrufen des Containerprotokolls (-n gibt die Anzahl der Zeilen an, die ab dem Ende des Protokolls angezeigt werden sollen):

$ docker logs -n 1000 [container-name]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie entleere ich die Goroutine des Container-Einstiegspunktprozesses?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!