php小編草莓將為您介紹如何轉儲容器入口點進程的goroutine。在使用Go語言開發容器化應用程式時,我們經常需要了解和偵錯運行中的goroutine。轉儲容器入口點進程的goroutine是一種常見的偵錯方法,它可以幫助我們分析和解決應用程式中的問題。在本文中,我們將詳細討論如何使用相關工具和技術來轉儲容器入口點進程的goroutine,並提供具體的步驟和範例程式碼。讓我們一起來探索這個有趣又實用的主題吧!
我有一個由 docker-compose up
執行的應用程式。當透過 docker-compose stop
停止應用程式時,容器之一不會終止。容器運行了一個用Go編寫的進程,所以我想轉儲該進程的goroutine,看看該進程卡在哪裡。
我可以docker ps
查看容器,然後docker exec -it <container-id> bash
進入容器,但一旦我kill -QUIT <process id> ;
,隨著進程終止,容器也停止,所以我無法取得goroutine轉儲。
在這種情況下如何取得 goroutine 轉儲?
容器也停止了,所以我無法取得 goroutine 轉儲。
我認為你可以從容器的日誌中取得 goroutine 轉儲,前提是:
docker-compose stop
停止執行容器而不刪除它們;kill -quit <process id>
將 goroutine 轉儲到 stderr。
以下是取得容器日誌的 docker 指令(-n
指定從日誌末端開始顯示的行數):
$ docker logs -n 1000 [container-name]
以上是如何轉儲容器入口點進程的 goroutine?的詳細內容。更多資訊請關注PHP中文網其他相關文章!