openlang

Go가 SIGUSR1과 SIGUSR2를 예약하나요?

개발자 여러분,

go 애플리케이션을 dmtcp 아래서 실행하려고 합니다 (GitHub의 dmtcp/dmtcp는 분산 멀티스레드 체크포인트 프로젝트 DMTCP입니다 (https://github.com/dmtcp/dmtcp)). 이 체크포인트 도구는 SIGUSR2를 사용하고 (대신 SIGUSR1도 가능), 관리하는 애플리케이션이 같은 신호를 쓰면 문제를 제기합니다. 테스트해 보니 단순한 것을 포함한 모든 go 애플리케이션이 두 신호를 모두 쓰는 것 같습니다. 문서를 살펴봤지만 관련 내용을 못 찾았는데, 제가 놓쳤다면 죄송합니다. 이런 동작을 아시는지, go가 두 신호를 쓰지 않도록 설정할 수 있는지 궁금합니다.

정말 감사합니다

영어에서 번역원문 보기

이어지는 대화 2

서로의 근거를 따라
  1. 고유 링크

    안녕하세요!

    Go 애플리케이션은 기본적으로 SIGUSR1 (프로파일링)과 SIGUSR2 (런타임 관리)에 의존해서, 같은 신호를 쓰는 DMTCP와 충돌합니다 (DMTCP는 대신 SIGUSR1을 선택할 수도 있습니다). 현재 Go 런타임에는 이를 사용하지 않게 하는 간단한 옵션이 없습니다. runtime/pprof 임포트를 빼거나, DMTCP가 SIGUSR1만 쓰게 조심스럽게 설정하거나, Go 프로세스를 분리하거나, DMTCP 관리자에게 구체적인 조언을 구하는 방법이 있습니다. DMTCP를 쓸 때 Go에서 이 신호를 직접 처리하는 것은 강하게 권하지 않습니다.

    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. Raspberry Pi 4에서 파일 열기

    Raspberry Pi 4에서 특정 디렉터리의 파일 1200개 이상을 읽으려고 for 루프 안에서 fopen을 씁니다. 루프가 어느 정도 반복되면 fopen으로 다음 파일을 읽을 수 없게 됩니다. 어떻게 해결해야 할까요?

    답글 2최근 활동 c
  2. inets 서버를 어떻게 중지하나요?

    안녕하세요, inets에 관해 아주 기본적인 질문이 있어요(추가 의존성이 필요 없어서 상당히 편하더군요). 시작한 inets “서비스”는 어떻게 종료하나요(예를 들어 버전 28.4에서요)? 아래 시도는 성공하지 못했어요: 위…

    답글 2최근 활동 erlang