首頁 > 後端開發 > Golang > 主體

如何轉儲容器入口點進程的 goroutine?

王林
發布: 2024-02-08 23:33:29
轉載
885 人瀏覽過

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

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&gt ; ,隨著進程終止,容器也停止,所以我無法取得goroutine轉儲。

在這種情況下如何取得 goroutine 轉儲?

解決方法

容器也停止了,所以我無法取得 goroutine 轉儲。

我認為你可以從容器的日誌中取得 goroutine 轉儲,前提是:

  1. docker-compose stop 停止執行容器而不刪除它們;
  2. kill -quit <process id> 將 goroutine 轉儲到 stderr。

    以下是取得容器日誌的 docker 指令(-n 指定從日誌末端開始顯示的行數):

    $ docker logs -n 1000 [container-name]
    登入後複製

    以上是如何轉儲容器入口點進程的 goroutine?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!