SIGCONT 未被通道检测到。

huangapple go评论141阅读模式
英文:

SIGCONT not detected by channel

问题

我正在尝试复制一个shell环境。以下代码在os.StartProcessp.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 := &lt;- 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.

huangapple
  • 本文由 发表于 2015年8月10日 10:18:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/31910787.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定