컨테이너 진입점 프로세스의 고루틴을 덤프하는 방법은 무엇입니까?

王林
풀어 주다: 2024-02-08 23:33:29
앞으로
883명이 탐색했습니다.

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

php editor Strawberry는 컨테이너 진입점 프로세스의 고루틴을 덤프하는 방법을 소개합니다. Go 언어를 사용하여 컨테이너화된 애플리케이션을 개발할 때 실행 중인 고루틴을 이해하고 디버그해야 하는 경우가 많습니다. 컨테이너 진입점 프로세스의 고루틴을 덤프하는 것은 일반적인 디버깅 방법으로, 애플리케이션의 문제를 분석하고 해결하는 데 도움이 될 수 있습니다. 이 기사에서는 관련 도구와 기술을 사용하여 컨테이너 진입점 프로세스의 고루틴을 덤프하고 특정 단계와 샘플 코드를 제공하는 방법을 자세히 논의합니다. 이 재미있고 실용적인 주제를 함께 살펴보겠습니다!

질문 내용

응용 프로그램이 docker-compose up 运行的应用程序。当通过 docker-compose stop에 의해 중지되었을 때 컨테이너 중 하나가 종료되지 않는 문제가 있습니다. 컨테이너는 Go로 작성된 프로세스를 실행하므로 해당 프로세스의 고루틴을 덤프하여 프로세스가 중단된 위치를 확인하고 싶습니다.

할 수 있습니다 docker ps 查看容器,然后 docker exec -it <container-id> bash 进入容器,但是一旦我 kill -QUIT <process id> 프로세스가 종료되면서 컨테이너도 중지되므로 고루틴 덤프를 가져올 수 없습니다.

이 경우 고루틴 덤프를 어떻게 얻나요?

해결 방법

컨테이너도 중지되어 고루틴 덤프를 가져올 수 없습니다.

다음을 제공하면 컨테이너 로그에서 고루틴 덤프를 얻을 수 있다고 생각합니다.

  1. docker-compose stop 컨테이너를 삭제하지 않고 실행을 중지하세요.
  2. kill -quit <process id> 고루틴을 stderr로 덤프합니다.

다음은 컨테이너 로그를 가져오는 docker 명령입니다. (-n 로그 끝부터 표시할 줄 수를 지정합니다.)

으아악

위 내용은 컨테이너 진입점 프로세스의 고루틴을 덤프하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!