首頁 >後端開發 >Golang >如何在Linux上實現HTTP伺服器的優雅關閉?

如何在Linux上實現HTTP伺服器的優雅關閉?

Linda Hamilton
Linda Hamilton原創
2024-12-16 00:58:09833瀏覽

How to Implement Graceful Shutdown for an HTTP Server on Linux?

Linux 上 http 伺服器的正常關閉

執行 http 伺服器時,通常需要在伺服器登出之前執行某些操作。這可以使用 Unix 訊號機制來完成。

實現此目的的一種方法是使用 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.
    <p>此程式碼將建立一個新的 http 伺服器並偵聽連接埠 8080。當程式收到中斷訊號(例如 Ctrl C)時,它將執行關閉操作,在本例中包含關閉伺服器並退出節目。 </p>

以上是如何在Linux上實現HTTP伺服器的優雅關閉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn