Go
ओएस सिग्नल
खोज…
वाक्य - विन्यास
- func Notify (c चान <- os.Signal, sig ... os.Signal)
पैरामीटर
पैरामीटर | विवरण |
---|---|
c चान <- os.Signal | channel प्राप्त करना विशेष रूप से प्रकार के os.Signal ; sigChan := make(chan os.Signal) के साथ आसानी से बनाया गया sigChan := make(chan os.Signal) |
sig ... os.Signal | इस channel को पकड़ने और भेजने के लिए os.Signal प्रकार की सूची। अधिक विकल्पों के लिए https://golang.org/pkg/syscall/#pkg-constants देखें। |
एक चैनल को संकेत सौंपना
अक्सर बार जब आप अपने कार्यक्रम को ओएस द्वारा बंद करने और राज्य को संरक्षित करने के लिए कुछ कार्रवाई करने, या अपने आवेदन को साफ करने के लिए कहा जा रहा है, तो आपको पकड़ने का कारण होगा। इसे पूरा करने के लिए आप मानक पुस्तकालय से 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
कीबोर्ड कमांड CTRL+C
जो SIGINT
सिग्नल भेजता है।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow