Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止在Linux上调用system2()时Rscript挂起?_R_Linux_Parallel Processing_Ubuntu 16.04_Rscript - Fatal编程技术网

如何防止在Linux上调用system2()时Rscript挂起?

如何防止在Linux上调用system2()时Rscript挂起?,r,linux,parallel-processing,ubuntu-16.04,rscript,R,Linux,Parallel Processing,Ubuntu 16.04,Rscript,我正在使用Ubuntu 16.04并运行R3.3.1,我编写了以下简单的Rscript文件来演示我遇到的问题: testR.R: name<- commandArgs(trailingOnly = TRUE)[1] for(i in 1:20000000){ if(i %% 1000000 == 0){ print(paste("hello",name,i)) } } print(paste("goodbye", name)) 我使用Rscript testCallTo

我正在使用Ubuntu 16.04并运行R3.3.1,我编写了以下简单的Rscript文件来演示我遇到的问题:

testR.R:

name<- commandArgs(trailingOnly = TRUE)[1]

for(i in 1:20000000){
  if(i %% 1000000 == 0){
    print(paste("hello",name,i))
  }
}
print(paste("goodbye", name))
我使用
Rscript testCallTo.R
从终端运行此命令,输出的结尾如下所示:

[1] "hello james 20000000"
[1] "goodbye james"
[1] "hello sally 20000000"
[1] "goodbye sally"
[1] "hello david 20000000"
[1] "goodbye david"
[1] "hello john 20000000"
[1] "goodbye john"
它似乎永远不会完全终止,并且在使用Ctrl-C之前不会重新出现提示。这不会有太大问题,只是在挂起时,它会定期在/tmp目录中创建空文件,直到使用Ctrl-C时才会停止。这是一个问题,因为我想长时间运行具有类似结构的脚本,如果我让它在无人值守的情况下运行,它会膨胀/tmp,然后需要几个小时才能重新启动

更奇怪的是,生成的文件似乎从文件夹GUI中被锁定,阻止我删除它们,并且即使使用
ls-A
,终端也不可见,如下面的屏幕截图所示。如果我试图用
rm
和文件名从终端删除它,它会抛出“文件不存在”错误

此结构的要点是并行运行多个Rscript,并根据另一个Rscript确定的参数传递给它们。我的直觉告诉我,我试图这样做的方式是导致这个问题的原因,必须有更好的方式


我无法重现您的问题,对我来说效果很好。(然而,在ubuntu-14.04.5上进行了测试,所以是“盐粒”。)我不认为我用RStudio编写脚本会有什么不同,而是从终端运行它?我无法想象这有什么关系,但除此之外,对于ubuntu版本,我不知道为什么其他人不会看到这个问题,我已经在同一个设置中的两台不同的机器上得到了它。这些文件只是简单的文本文件,所以使用rstudio编辑器应该没有什么区别。您的
~/.Rprofile
文件中是否有任何相关内容正在改变R的行为?我无法重现您的问题,对我来说效果很好。(然而,在ubuntu-14.04.5上进行了测试,所以是“盐粒”。)我不认为我用RStudio编写脚本会有什么不同,而是从终端运行它?我无法想象这有什么关系,但除此之外,对于ubuntu版本,我不知道为什么其他人不会看到这个问题,我已经在同一个设置中的两台不同的机器上得到了它。这些文件只是简单的文本文件,所以使用rstudio编辑器应该没有什么区别。您的
~/.Rprofile
文件中是否有任何改变R行为的相关内容?
[1] "hello james 20000000"
[1] "goodbye james"
[1] "hello sally 20000000"
[1] "goodbye sally"
[1] "hello david 20000000"
[1] "goodbye david"
[1] "hello john 20000000"
[1] "goodbye john"