Ant*_*ter 4 operating-system signals go
如果你看一下Nginx它会调用"nginx reload"重新加载自己.有没有办法从命令行向正在运行的进程发送信号?即使主进程启动子进程,如何将命令发送到主进程以通知其子进程?
例如:
myapp start -debug // starts a server
myapp reload -gracefull // stops the app gracefully
Run Code Online (Sandbox Code Playgroud)
现在我需要发送os信号通知我的服务器执行正常关机
kill -QUIT pid
kill -USR2 pid
Run Code Online (Sandbox Code Playgroud)
我希望我的问题足够清楚Thnx
看看os/signal包装.
封装信号实现对输入信号的访问.
文档中甚至有一个例子:
// Set up channel on which to send signal notifications.
// We must use a buffered channel or risk missing the signal
// if we're not ready to receive when the signal is sent.
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt, os.Kill)
// Block until a signal is received.
s := <-c
fmt.Println("Got signal:", s)
Run Code Online (Sandbox Code Playgroud)
要查看如何发送信号signal_test.go,请使用syscall.例如 :
// Send this process a SIGHUP
t.Logf("sighup...")
syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
waitSig(t, c, syscall.SIGHUP)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1463 次 |
| 最近记录: |