Zoeken…


Syntaxis

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

parameters

Parameter Details
c chan <- os.Signaal Het ontvangen channel specifiek type os.Signal ; gemakkelijk gemaakt met sigChan := make(chan os.Signal)
sig ... os.Signal Lijst met os.Signal om dit channel te vangen en naar beneden te sturen. Zie https://golang.org/pkg/syscall/#pkg-constants voor meer opties.

Signalen toewijzen aan een kanaal

Vaak zult u reden hebben om te vangen wanneer uw programma wordt verteld om door het OS te stoppen en enkele acties te ondernemen om de status te behouden of uw toepassing op te schonen. Om dit te bereiken kunt u het os/signal pakket uit de standaardbibliotheek gebruiken. Hieronder ziet u een eenvoudig voorbeeld van het toewijzen van alle signalen van het systeem aan een kanaal en vervolgens hoe u op die signalen kunt reageren.

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)
    }
}

Wanneer u het bovenstaande script uitvoert, wordt een kanaal gemaakt en vervolgens geblokkeerd totdat dat kanaal een signaal ontvangt.

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

De ^C hierboven is het toetsenbordcommando CTRL+C dat het SIGINT signaal verzendt.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow