Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
golang在cmd.Start启动的进程中处理kill_Go_Interrupt - Fatal编程技术网

golang在cmd.Start启动的进程中处理kill

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() {

我有两个围棋项目。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() {
            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并在另一方面-这是停止应用程序的常规方法