Go에서 실행 종료 작업 수행
Go에서는 프로그램이 종료될 때 다음에 대한 응답을 포함하여 특정 작업을 실행할 수 있습니다. 사용자가 시작한 인터럽트(Ctrl-C). 이러한 시나리오에서는 Unix 신호를 이해하는 것이 도움이 될 수 있습니다.
인터럽트 신호 잡기
사용자가 Ctrl-를 누를 때 트리거되는 인터럽트 신호(SIGINT)를 잡으려면 C에서는 다음과 같이 os.Signal 및 signal.Notify 패키지를 사용할 수 있습니다.
package main import ( "fmt" "os" "os/signal" ) func main() { fmt.Println("Program started!") // Create a channel for receiving signals sigchan := make(chan os.Signal, 1) // Notify the channel on receipt of the interrupt signal signal.Notify(sigchan, os.Interrupt) // Start a separate goroutine to handle the interrupt signal go func() { <-sigchan fmt.Println("Program interrupted!") fmt.Println("Performing cleanup actions...") // Perform end-of-execution actions // Exit the program cleanly os.Exit(0) }() // Start main program tasks }
여기서 예를 들어, 인터럽트 신호를 처리하기 위해 고루틴이 시작됩니다. Ctrl-C를 누르면 메시지를 인쇄하고 필요한 정리 작업(예: 버퍼 플러시, 연결 닫기)을 수행하고 os.Exit(0)을 호출하여 프로그램을 정상적으로 종료합니다.
위 내용은 Go 프로그램이 종료될 때 정리 작업을 어떻게 수행할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!