在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
package main import "fmt" import "os" import "os/signal" import "syscall" func main() { go SignalProc() done := make(chan bool, 1) for { select { case <-done: break } } fmt.Println("exit") } func SignalProc() { sigs := make(chan os.Signal) signal.Notify(sigs, syscall.SIGINT, syscall.SIGUSR1, syscall.SIGUSR2, syscall.SIGHUP, os.Interrupt) for { msg := <-sigs fmt.Println("Recevied signal:", msg) switch msg { default: fmt.Println("get sig=%v\n", msg) case syscall.SIGHUP: fmt.Println("get sighup\n") case syscall.SIGUSR1: fmt.Println("SIGUSR1 test") case syscall.SIGUSR2: fmt.Println("SIGUSR2 test") } } }
// kill -USR1 10323
kill -USR2 10323
kill -n 2 10323
可以 SIGUSR1 做一些配置的重新加载
SIGUSR2 可以做一些游戏base的重新加载
指令: kill -Num ProcessId(pid)
一般如果關機的話, 系統是會先送 TERM(15) 的訊號來終止 process, 不行才會送 KILL(9) 來終止程式. 转自:http://sugarmanman.blog.163.com/blog/static/8107908020136713147504/ |
请发表评论