在Linux上运行批处理模式R:输出问题(Running R in Batch Mode on Li

2019-07-30 14:01发布

我是一个Linux集群上运行的R程序,因为它是非常对我的要求处理器。 我的计划是为了输出多(约15),地块为PDF的进入从该程序收集的输入文件夹。

我想我的程序在后台运行,并继续运行,当我退出集群。

首先,我想这一点:

cd /Users/The/Folder/With/My/RScript #changed working directory
nohup ./BatchProgram.R &

然而,这并没有工作,因为它附加输出到一个名为nohup.out ,并没有任何输出的PDF文件,我需要的。

接下来,我想这:

cd /Users/The/Folder/With/My/RScript #changed working directory
R #to run R
source(‘BatchProgram.R’) #to run my program

这给了我所需要的输出,但没有在后台运行的程序(当我退出集群将停止)。

可能有人开导我,我怎么可能会获得我的代码第二块的输出,在后台运行的程序,并使其继续运行我注销了Linux集群的甚至后(如第一个代码块),而?

非常感谢!

Answer 1:

nohup在后台运行一个命令,使得它忽略的信号,告诉它停止(例如,当您注销),输出重定向到文件。 但它必须是一个可执行的命令:你可能有错误消息在nohup.out告诉你, BatchProgram.R无法运行。

下面应该工作:

nohup Rscript ./BatchProgram.R &


Answer 2:

该解决方案进行测试,U可以尝试也使得它的nohup“版本,但究竟会呈现良好适合我。 使得bash脚本(例如run_R.sh)如下:

#!/bin/sh
R CMD BATCH --slave ./_your_R_script_name.R &
exit 0

然后,使其可以运行

chmod +x run_R.sh

并运行文件一样,

./run_R.sh

有时你能得到的只有闪烁的光标(取决于什么Linux发行你的工作),但简单的按“Enter”键继续



文章来源: Running R in Batch Mode on Linux: Output Issues