退出Go 程式後執行操作
問題:
如何執行特定的操作Go程式執行結束時的操作?這對於處理 HTTP 伺服器中的清理任務或正常退出特別相關。
答案:
利用Unix 訊號
在Go 中處理執行結束操作涉及註冊SUnix 訊號,例如SIGINT(例如SIGINT(產生的按Ctrl-C)。此訊號通知 Go 運行時程序何時應終止。
程式碼片段
以下程式碼片段示範如何擷取中斷訊號並在先前執行清理操作exiting:
package main import ( "log" "os" "os/signal" ) func main() { // Create a channel to receive the interrupt signal. sigchan := make(chan os.Signal) signal.Notify(sigchan, os.Interrupt) // Start a goroutine to listen for the signal. go func() { <-sigchan log.Println("Program killed!") // Perform last actions and wait for all write operations to end. os.Exit(0) }() // Start the main program tasks. }
說明
以上是Go程式退出前如何執行清理操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!