Linux 上の http サーバーの正常なシャットダウン
http サーバーを実行している場合、多くの場合、サーバーが終了する前に特定の操作を実行する必要があります。これは、Unix シグナル メカニズムを使用して行うことができます。
これを行う 1 つの方法は、Go で os.Signal パッケージを使用することです。
package main import ( "fmt" "log" "net/http" "os" "os/signal" ) func main() { // Create a new http server. http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") }) go func() { // Start the server. log.Fatal(http.ListenAndServe(":8080", nil)) }() // Create a channel to receive os signals. sigchan := make(chan os.Signal) signal.Notify(sigchan, os.Interrupt) // Block until a signal is received. <-sigchan // Perform shutdown operations. log.Println("Shutting down server...") // Close the server. err := http.CloseServer(http.DefaultServer) if err != nil { log.Fatal(err) } // Exit the program. os.Exit(0) }
このコードは、新しい http サーバーを作成し、ポート 8080 でリッスンします。プログラムが割り込み信号 (Ctrl C など) を受信すると、シャットダウン操作が実行されます。この場合、サーバーを閉じたり、システムを終了したりすることが含まれます。プログラム。
以上がLinux 上の HTTP サーバーの正常なシャットダウンを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。