R关闭后R进程不会停止

时间:2014-06-20 07:28:58

标签: r

我正在使用并行。如果我的代码在stopCluster(cl)代码运行之前被中断(例如有错误,或只是关闭了R控制台),那么R进程会继续运行!我正在使用新的Macbook Pro。在我的活动监视器中,即使关闭了R控制台,我也可以看到8个R进程正在运行。我似乎可以阻止它们的唯一方法是重新启动计算机。我也可以强制从活动监视器中逐个退出。有没有更好的解决方案?

cl <- makeCluster(getOption('cl.cores', detectCores()))
clusterEvalQ(cl, library(data.table))
clusterEvalQ(cl, require(zoo))
...
stopCluster(cl)

1 个答案:

答案 0 :(得分:2)

您可以在mcKill包中使用parallel低级功能:

  

向子进程发送信号:它相当于包工具中的pskill。

示例:

p  <- mcparallel(scan(n = 1, quiet = TRUE))
parallel:::mckill(p)
[1] TRUE
parallel:::mckill(p)  ## check that the process is really killed
Error in FUN(3202L[[1L]], ...) : 'mckill' failed