gpt4 book ai didi

unix - 正确终止生成的 runghc 进程

转载 作者:行者123 更新时间:2023-12-04 19:06:17 25 4
gpt4 key购买 nike

像这样的脚本

-- foo.hs
import System.Process
import Control.Concurrent

main = do
a <- runCommand "yes"
threadDelay 1000000
terminateProcess a

我得到预期的行为 -- yes一直运行到 threadDelay起来了。但是如果我替换 "yes""runghc bar.hs" , bar.hs 在哪里
import Control.Monad
import Control.Concurrent

main = forever (print 5 >> threadDelay 100000)

...然后 bar.hs 永远运行。有没有更好的方法让 runghc 终止?

编辑:
此行为在 linux 上

最佳答案

这是非常有趣的行为。这是怎么回事runghc产生它自己的子进程,然后你杀死 runghc过程而不是 child 。使用 interruptProcessGroupOf 代替 terminateProcess似乎在这里可以解决问题,尽管我真的不知道这是否是一个可靠/正确的解决方案。

关于unix - 正确终止生成的 runghc 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23658676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com