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 的一部分。