unix – 正确终止衍生的runghc进程
发布时间:2020-12-15 21:43:43 所属栏目:安全 来源:网络整理
导读:用像这样的脚本 -- foo.hsimport System.Processimport Control.Concurrentmain = do a - runCommand "yes" threadDelay 1000000 terminateProcess a 我得到了预期的行为 – 是的,直到threadDelay启动为止.但如果我用“runghc bar.hs”替换“yes”,那么bar.h
用像这样的脚本
-- foo.hs import System.Process import Control.Concurrent main = do a <- runCommand "yes" threadDelay 1000000 terminateProcess a 我得到了预期的行为 – 是的,直到threadDelay启动为止.但如果我用“runghc bar.hs”替换“yes”,那么bar.hs就是 import Control.Monad import Control.Concurrent main = forever (print 5 >> threadDelay 100000) …然后bar.hs永远运行.是否有更好的方法让runghc终止? 编辑: 解决方法
这是非常有趣的行为.正在发生的是,runghc产生了自己的子进程,你杀死了runghc进程而不是孩子.使用
interruptProcessGroupOf 代替terminateProcess似乎可以解决这个问题,但我真的不知道这是否是一个可靠/正确的解决方案.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |