Go退出程序实例


有时我们希望Go程序能够智能地处理Unix信号。 例如,可能希望服务器在接收到SIGTERM时正常关闭,或者在收到SIGINT时使用命令行工具停止处理输入。下面介绍如何使用Go语言处理信号。

Go语言中,使用os.Exit立即退出并返回给定状态。

当使用os.Exit时,defers不会运行。

所有的示例代码,都放在 F:\worksp\golang 目录下。安装Go编程环境请参考:http://www.yiibai.com/go/go_environment.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

匿名

发表评论

匿名网友