我试图编写一个能够驱逐kill命令功能的测试。要做到这一点,我需要我的测试目标(一个非常简单的去http服务器 - https://github.com/jadekler/git-grunt-gostop/blob/master/test/fixtures/gostop_basic.go)来区分已经杀死-2与-9。有办法做到这一点吗?看起来似乎并不会发生 - 不管-2 vs -9,这是我的第一次尝试。后来的研究并不具有启发性。
感谢您的任何建议!
答案 0 :(得分:4)
您可以使用os/signal
package捕获信号。您可以使用以下代码捕获SIGINT
:
import (
"os"
"os/signal"
)
...
// the signal module will lose notifications if the channel is not ready to receive, so give it a buffer
ch := make(chan os.Signal, 5)
go func() {
for sig := range ch {
// interrupt signal received
os.Exit(0)
}
}()
signal.Notify(ch, os.SIGINT)
不幸的是,你不能对SIGKILL
做同样的事情。从signal(7)
手册页:
无法捕获,阻止或忽略信号
SIGKILL
和SIGSTOP
。