2016-08-26 3 views
1

Salut c'est une question que je ne suis pas sûr de savoir comment encadrer.En cours d'exécution R en arrière-plan

Je cours R à partir d'un serveur distant. Mon accès au serveur distant se fait via ssh @ username et ainsi de suite. Après j'accède j'ai une invite de commande que j'invoque R et je suis à l'aise de travailler sur R.

Question 1 J'ai un grand réseau (100k nœuds) et je voudrais faire la détection de la communauté et je voudrais l'exécuter dans l'arrière-plan de telle sorte que si je ferme mon terminal, il continue à fonctionner jusqu'à ce que son fini enregistre le résultat dans mon répertoire de travail R.

J'ai essayé d'utiliser nohup R & mais je ne suis pas sûr que le processus s'est terminé avec succès.

Question 2 Si j'arrive à implémenter la Question 1, comment pourrais-je continuer à utiliser R pour effectuer d'autres tâches? et

Question 3 Comment est-ce que je vérifie la tâche dans Q1 est toujours en cours d'exécution.

ma tentative sur un script ressemble à ceci

#!/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) 

j'ai sauvé le script dans mon directeur travaillant comme aR

et utilisé à l'invite de commande après avoir changé mon répertoire de travail chmod + x aR nohup ./aR &

De quoi aurais-je besoin pour corriger. Merci

+3

écran Check out (https://www.gnu.org/software/screen/). Il vous permet de vérifier dans et hors d'une session de terminal sans y mettre fin, lui permettant de continuer même après vous être déconnecté. –

+0

En outre, vous pouvez avoir plusieurs sessions d'écran à la fois. Chacun peut avoir sa propre session de R ouverte. –

+1

Oubliez 'screen', et laissez-le se retirer. Utilisez [** 'tmux' **] (https://tmux.github.io/), un remplacement moderne. –

Répondre

1

Vous voulez exécuter R en mode "batch". Voir (https://stat.ethz.ch/R-manual/R-devel/library/utils/html/BATCH.html)

La commande ci-dessous est un exemple de ces documents. "&" indique "Exécuter séparément de la session de connexion de l'utilisateur". Ainsi, lorsque vous vous déconnectez, il continue de s'exécuter.

R CMD BATCH [options] infile [outfile] & 

Vous pouvez également utiliser nohup comme discuté ici (http://streaming.stat.iastate.edu/wiki/index.php/Running_Jobs_in_the_Background)

nohup R CMD BATCH ./myprog.R &