Go での実行終了アクションの実行
Go では、プログラムの終了時に、次のようなアクションを実行できます。ユーザーが開始した割り込み (Ctrl-C)。 Unix 信号を理解すると、これらのシナリオに役立ちます。
割り込み信号のキャッチ
ユーザーが Ctrl- キーを押すとトリガーされる割り込み信号 (SIGINT) をキャッチするにはC では、次のように os.Signal および signal.Notify パッケージを使用できます。 this:
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 中国語 Web サイトの他の関連記事を参照してください。