在 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中文网其他相关文章!