수색…
통사론
- func 통지 (c chan <- os.Signal, sig ... os.Signal)
매개 변수
매개 변수 | 세부 |
---|---|
c chan <- os.Signal | os.Signal 유형의 channel 수신 os.Signal . sigChan := make(chan os.Signal) 쉽게 만들 수 있습니다 sigChan := make(chan os.Signal) |
시그 ... 시그널 | os.Signal types의 목록은이 channel 을 os.Signal 내려 보낼 수 있습니다. 자세한 옵션은 https://golang.org/pkg/syscall/#pkg-constants 를 참조 하십시오 . |
채널에 신호 할당
종종 프로그램이 OS에 의해 멈추고 상태를 보존하기 위해 몇 가지 조치를 취하거나 애플리케이션을 정리하라는 메시지가 나오면 잡을만한 이유가 있습니다. 이를 위해 표준 라이브러리의 os/signal
패키지를 사용할 수 있습니다. 다음은 시스템의 모든 신호를 채널에 할당 한 다음 해당 신호에 반응하는 간단한 예제입니다.
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)
}
}
위의 스크립트를 실행하면 채널이 생성되고 해당 채널이 신호를받을 때까지 차단됩니다.
$ go run signals.go
^CReceived signal from OS: interrupt
위의 ^C
는 SIGINT
신호를 보내는 키보드 명령 CTRL+C
입니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow