【问题标题】:Running R in the background在后台运行 R
【发布时间】:2017-01-03 10:10:32
【问题描述】:

您好,这是一个我不知道如何表达的问题。

我正在从远程服务器运行 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 &

我需要纠正什么。谢谢

【问题讨论】:

  • 签出屏幕 (gnu.org/software/screen)。它允许您在不结束终端会话的情况下签入和签出,即使在您断开连接后也可以继续。
  • 另外,您可以同时拥有多个屏幕会话。每个人都可以打开自己的 R 会话。
  • 忘记screen,让它退休吧。使用tmux,一种现代替代品。

标签: r ssh igraph ubuntu-15.04


【解决方案1】:

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

下面的命令是这些文档中的一个示例。 “&”表示“与用户的登录会话分开运行”,因此当您注销时,它会继续运行。

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 &

【讨论】:

    【解决方案2】:

    有点晚了,但如果其他人需要答案。 做这个: 保存您的脚本,我将使用 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 &lt;Number of your screen session&gt;。瞧!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 2021-04-06
      • 2011-08-19
      • 2011-12-28
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多