Go Wiki: SignalHandling

引言

有时应用程序需要保存内部状态或在退出前执行一些清理活动,或者需要能够按需重新加载配置文件或写入内存/CPU配置文件。在类Unix操作系统中,信号可以完成这些任务。

示例

以下代码演示了一个程序,该程序会等待中断信号,并在信号发生时删除临时文件。

package main

import (
    "io/ioutil"
    "os"
    "os/signal"
)

func main() {
    f, err := ioutil.TempFile("", "test")
    if err != nil {
        panic(err)
    }
    defer os.Remove(f.Name())
    defer f.Close()
    sig := make(chan os.Signal, 1)
    signal.Notify(sig, os.Interrupt)
    <-sig
}

此内容是 Go Wiki 的一部分。