지연 함수로 SIGINT 트래핑
질문: Ctrl C(SIGINT) 신호를 처리하고 프로그램 전에 정리 기능을 실행 종료?
답변:
예, Go의 os/signal 패키지를 사용하여 SIGINT 신호를 캡처하고 "지연" 방식으로 정리 기능을 실행할 수 있습니다.
signal.Notify 기능을 사용하면 os.Interrupt와 같은 특정 신호에 대한 알림을 수신하도록 채널을 등록할 수 있습니다. Ctrl C)에 의해 생성된 SIGINT 신호:
c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt)
다음으로 들어오는 신호를 기다리는 고루틴을 시작합니다.
go func(){ for sig := range c { // Handle the sig interruption } }()
고루틴 내부에서 다음과 같은 경우 필요한 정리 작업을 수행할 수 있습니다. SIGINT 신호가 수신됩니다.
프로그램을 종료하고 정보를 인쇄하는 방식은 특정 구현에 따라 결정됩니다. 정리 기능의 작동 방식과 수행할 작업을 완벽하게 제어할 수 있습니다.
위 내용은 Go의 'defer' 함수가 프로그램 종료를 위해 SIGINT를 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!