zoukankan      html  css  js  c++  java
  • 1.7获取os信号

    package main
    
    import (
    	"fmt"
    	"os"
    	"os/signal"
    	"syscall"
    )
    
    func main() {
    
    	// Create the channel where the received
    	// signal would be sent. The Notify
    	// will not block when the signal
    	// is sent and the channel is not ready.
    	// So it is better to
    	// create buffered channel.
    	sChan := make(chan os.Signal, 1)
    
    	// Notify will catch the
    	// given signals and send
    	// the os.Signal value
    	// through the sChan
    	signal.Notify(sChan,
    		syscall.SIGHUP,
    		syscall.SIGINT,
    		syscall.SIGTERM,
    		syscall.SIGQUIT,
    		syscall.SIGKILL)
    
    	// Create channel to wait till the
    	// signal is handled.
    	exitChan := make(chan int)
    	go func() {
    		signal := <-sChan
    		switch signal {
    		case syscall.SIGHUP:
    			fmt.Println("The calling terminal has been closed")
    			exitChan <- 0
    
    		case syscall.SIGINT:
    			fmt.Println("The process has been interrupted by CTRL+C")
    			exitChan <- 1
    
    		case syscall.SIGTERM:
    			fmt.Println("kill SIGTERM was executed for process")
    			exitChan <- 1
    
    		case syscall.SIGKILL:
    			fmt.Println("SIGKILL handler")
    			exitChan <- 1
    
    		case syscall.SIGQUIT:
    			fmt.Println("kill SIGQUIT was executed for process")
    			exitChan <- 1
    		}
    	}()
    
    	code := <-exitChan
    	os.Exit(code)
    }
    
    
    // ^CThe process has been interrupted by CTRL+C
    
    
    
  • 相关阅读:
    PHP入门
    bootstrap框架
    jsp5 include forward param
    jsp4 Cookie
    网页定位导航
    jsp3 javabean
    Obsidian md安装闪退
    Excel 2016 Mac VBA 的变化 窗体消失
    Excel Mac 2016 调用 Applescript
    如何自学R
  • 原文地址:https://www.cnblogs.com/zrdpy/p/8593116.html
Copyright © 2011-2022 走看看