在后台运行R.

时间:2016-08-26 17:01:41

标签: r ssh igraph ubuntu-15.04

嗨,这是一个我不确定如何构架的问题。

我正在从远程服务器运行R.我对远程服务器的访问是通过ssh @ username等进行的。在我访问后,我有一个命令提示符,我调用R,我很乐于在R.上工作。

问题1 我有一个大型网络(100k节点),并希望进行社区检测,并希望在后台运行它,如果我关闭我的终端,它一直运行,直到它完成保存结果在我的R工作目录。

我尝试过使用nohup R&但我不确定这个过程是否成功完成。

问题2 如果我设法实现问题1,我怎么能继续使用R来执行其他任务?和

问题3 我如何检查Q1中的任务是否仍在运行。

我对脚本的尝试看起来像这样

#!/usr/bin/env Rscript
library(igraph)
library(data.table)
edgebetween <- function(x) {
  simplify(x, remove.multiple = F, remove.loops = T) 
   edge.betweenness.community(x, directed = T)
}
community.a.g3 <- edgebetween(a.g3)

我已将脚本保存在我的工作总监中作为a.R

并在更改为我的工作目录后在命令提示符下使用      chmod + x a.R      nohup ./a.R&amp;

我需要纠正什么。感谢

2 个答案:

答案 0 :(得分:3)

您想在“批处理”模式下执行R.见(https://stat.ethz.ch/R-manual/R-devel/library/utils/html/BATCH.html

以下命令是这些文档的示例。 “&amp;”说“将其与用户的登录会话分开运行”,因此当您注销时,它会继续运行。

R CMD BATCH [options] infile [outfile] &

您也可以使用此处讨论的nohup(http://streaming.stat.iastate.edu/wiki/index.php/Running_Jobs_in_the_Background

nohup R CMD BATCH ./myprog.R &

答案 1 :(得分:0)

迟到但如果其他人需要答案。 做这个: 保存您的脚本,我将使用Test.R作为示例。

head Test.R
library(igraph)
library(data.table)
edgebetween <- function(x) {
  simplify(x, remove.multiple = F, remove.loops = T) 
   edge.betweenness.community(x, directed = T)
}
community.a.g3 <- edgebetween(a.g3)

使用screen然后运行Rscript Test.R并点击ctrl + a + d。 当你回来时,请screen -ls,然后screen -r <Number of your screen session>。瞧!