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() ゴルーチンはプログラムの主要なタスクを続行できます。 Ctrl-C 割り込みを受け取ると、シグナル goroutine はクリーンアップ操作を適切に処理し、プログラムを終了します。
以上がHTTP サーバーの終了時にクリーンアップ アクションを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。