Sök…


Syntax

  • func Meddela (c chan <- os.Signal, sig ... os.Signal)

parametrar

Parameter detaljer
c chan <- os.Signal Mottagande channel specifikt av typen os.Signal ; enkelt skapad med sigChan := make(chan os.Signal)
sig ... os.Signal Lista över os.Signal att fånga och skicka ner den här channel . Se https://golang.org/pkg/syscall/#pkg-constants för fler alternativ.

Tilldela signaler till en kanal

Ofta har du skäl att fånga när ditt program får höra att stoppa av operativsystemet och vidta några åtgärder för att bevara staten eller städa upp din ansökan. För att åstadkomma detta kan du använda paketet os/signal från standardbiblioteket. Nedan följer ett enkelt exempel på att tilldela alla signaler från systemet till en kanal och sedan hur man reagerar på dessa signaler.

package main

import (
    "fmt"
    "os"
    "os/signal"
)

func main() {
    // create a channel for os.Signal
    sigChan := make(chan os.Signal)

    // assign all signal notifications to the channel 
    signal.Notify(sigChan)

    // blocks until you get a signal from the OS
    select {
    // when a signal is received
    case sig := <-sigChan:
        // print this line telling us which signal was seen
        fmt.Println("Received signal from OS:", sig)
    }
}

När du kör ovanstående skript skapar det en kanal och blockerar sedan tills den kanalen får en signal.

$ go run signals.go 
^CReceived signal from OS: interrupt

^C ovan är tangentbordskommandot CTRL+C som skickar SIGINT signalen.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow