Go退出程式範例


有時我們希望Go程式能夠智慧地處理Unix信號。 例如,可能希望伺服器在接收到SIGTERM時正常關閉,或者在收到SIGINT時使用命令列工具停止處理輸入。下面介紹如何使用Go語言處理信號。

Go語言中,使用os.Exit立即退出並返回給定狀態。

當使用os.Exit時,defers不會執行。

所有的範例程式碼,都放在 F:\worksp\golang 目錄下。安裝Go程式設計環境請參考:/2/23/798.html

signal.go的完整程式碼如下所示 -

package main

import "fmt"
import "os"

func main() {

    // `defer`s will _not_ be run when using `os.Exit`, so
    // this `fmt.Println` will never be called.
    defer fmt.Println("!")

    // Exit with status 3.
    os.Exit(3)
}

// Note that unlike e.g. C, Go does not use an integer
// return value from `main` to indicate exit status. If
// you'd like to exit with a non-zero status you should
// use `os.Exit`.

執行上面程式碼,將得到以下輸出結果 -

F:\worksp\golang>go run exit.go
exit status 3