在Go 中執行執行結束操作
在Go 中,您可以在程式退出時執行特定操作,包括回應使用者啟動的中斷(Ctrl-C)。了解 Unix 訊號在這些情況下會很有幫助。
捕獲中斷訊號
捕獲中斷訊號(SIGINT),當使用者按下Ctrl- 時會觸發該訊號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 }
在此例如,啟動一個goroutine來處理中斷訊號。當按下 Ctrl-C 時,它會列印一條訊息,執行任何必要的清理操作(例如,刷新緩衝區、關閉連線),並呼叫 os.Exit(0) 優雅地退出程式。
以上是Go程式退出時如何進行清理操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!