退出 Go 程序后执行操作
问题:
如何执行特定的操作Go 程序执行结束时的操作?这对于处理 HTTP 服务器中的清理任务或正常退出特别相关。
答案:
利用 Unix 信号
在 Go 中处理执行结束操作涉及注册 Unix 信号,例如 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中文网其他相关文章!