Go プログラム終了後のオペレーションの実行
質問:
特定の操作を実行するにはどうすればよいですか? Go プログラムの実行終了時の操作?これは、HTTP サーバーでのクリーンアップ タスクや正常な終了の処理に特に関係します。
回答:
Unix シグナルの利用
Go で実行終了アクションを処理するには、SIGINT (生成された) などの Unix シグナルの登録が必要です。 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 中国語 Web サイトの他の関連記事を参照してください。