ホームページ >バックエンド開発 >Golang >Go プログラムの終了時にクリーンアップ アクションを実行するにはどうすればよいですか?

Go プログラムの終了時にクリーンアップ アクションを実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-20 04:21:12397ブラウズ

How Can I Perform Cleanup Actions When a Go Program Exits?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。