Go
OS-signalen
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