如果您查看Nginx,它会调用“ nginx reload”来重新加载自身。有什么方法可以从命令行向正在运行的进程发送信号吗?即使主进程启动了子进程,如何向主进程发送命令以通知其子进程?
前任:
myapp start -debug // starts a server
myapp reload -gracefull // stops the app gracefully
现在,我需要发送os信号来通知服务器执行正常关机
kill -QUIT pid
kill -USR2 pid
我希望我的问题很清楚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)
要查看如何发送信号signal_test.go
,请使用syscall
。例如 :
// Send this process a SIGHUP
t.Logf("sighup...")
syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
waitSig(t, c, syscall.SIGHUP)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句