英文:
SIGCONT not detected by channel
问题
我正在尝试复制一个shell环境。以下代码在os.StartProcess
和p.Wait()
中运行。它能够接收到C-z
(SIGTSTP)和C-c
(SIGINT),但是当我用另一个shell发送kill -CONT [PID]
命令发送SIGCONT
时,它无法接收到。
sigChild := make(chan os.Signal)
defer close(sigChild)
signal.Notify(sigChild, syscall.SIGTSTP, syscall.SIGINT, syscall.SIGCONT)
defer signal.Stop(sigChild)
sigRcvd := <-sigChild
fmt.Println(sigRcvd)
我不确定我在代码中是否漏掉了什么。
英文:
I'm trying to replicate a shell environment. The following code runs within os.StartProcess
and p.Wait()
. It is able to receive C-z
(SIGTSTP) and C-c
(SIGINT) but not when I send SIGCONT
from another shell with kill -CONT [PID]
.
sigChild := make(chan os.Signal)
defer close(sigChild)
signal.Notify(sigChild, syscall.SIGTSTP, syscall.SIGINT, syscall.SIGCONT)
defer signal.Stop(sigChild)
sigRcvd := <- sigChild
fmt.Println(sigRcvd)
I'm not sure if I missing something in my code.
答案1
得分: 0
这是Go语言中已知的问题。在GitHub上有一个相关的问题1。
英文:
It's an known issue in Go. There is an issue for it on GitHub.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论