在使用http.Handle 啟動的HTTP 伺服器的上下文中,出現瞭如何在程式結束時執行特定操作的問題程式的執行。此場景還包括透過 Ctrl-C 終止程序時的處理情況。
對於 Linux 系統,可以透過利用 os.Signal 套件捕獲和處理訊號來完成此任務。提供的答案使用 os.Interrupt 來偵測 Ctrl-C 事件並在退出之前啟動所需的操作。
提供的程式碼片段示範了此方法的實作:
import ( "log" "os" "os/signal" ) func main() { // Create a channel to receive signals sigchan := make(chan os.Signal) // Register to receive interrupt signals signal.Notify(sigchan, os.Interrupt) // Start a goroutine to handle signals go func() { // Wait for an interrupt signal <-sigchan // Log the event log.Println("Program killed!") // Perform final actions and wait for write operations to complete // Exit cleanly os.Exit(0) }() // Start the main program tasks }
使用此實作後,main() goroutine 可以繼續執行程式的主要任務。收到 Ctrl-C 中斷後,訊號協程將優雅地處理清理操作,然後終止程式。
以上是HTTP伺服器退出時如何執行清理操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!