golang在cmd.Start启动的进程中处理kill
我有两个围棋项目。ProgA使用cmd.Start()启动ProgB。从ProgA我试图杀死ProgB,但ProgB应该立即被杀死,它必须在死前做一些清理。所以我在ProgB中使用signal.Notify来处理sigcall.SIGKILL,但每当ProgA调用ProgB.Process.Kill()时,它似乎都不会通知ProgB(将内容写入sigc通道) 在ProgB中,我有如下通知:golang在cmd.Start启动的进程中处理kill,go,interrupt,Go,Interrupt,我有两个围棋项目。ProgA使用cmd.Start()启动ProgB。从ProgA我试图杀死ProgB,但ProgB应该立即被杀死,它必须在死前做一些清理。所以我在ProgB中使用signal.Notify来处理sigcall.SIGKILL,但每当ProgA调用ProgB.Process.Kill()时,它似乎都不会通知ProgB(将内容写入sigc通道) 在ProgB中,我有如下通知: signal.Notify(sigc, syscall.SIGKILL) go func() {
signal.Notify(sigc, syscall.SIGKILL)
go func() {
fmt.Println("started listening")
<-sigc
fmt.Println("sig term")
cleanUp()
os.Exit(1)
}()
someLongRunningCode()
signal.Notify(sigc,syscall.SIGKILL)
go func(){
fmt.Println(“开始监听”)
接收进程无法捕获SIGKILL-内核将强制进程终止。您可以向进程发送SIGTERM并在另一端处理它-这是停止应用程序的常规方法。接收进程无法捕获SIGKILL-内核将强制进程终止。您可以向进程发送SIGTERM并在另一方面-这是停止应用程序的常规方法