2016-08-26 3 views
1

Hallo, das ist eine Frage, die ich nicht sicher bin, wie man einrahmen soll.Laufen R im Hintergrund

Ich verwende R von einem Remote-Server. Mein Zugriff auf den Remote-Server erfolgt über ssh @ username und so weiter. Nach dem Zugriff habe ich eine Eingabeaufforderung, die ich R aufrufen und ich bin komfortabel arbeiten an R.

Frage 1 Ich habe ein großes Netzwerk (100k Knoten) und möchte Community-Erkennung tun und möchte es ausführen der Hintergrund so, dass, wenn ich mein Terminal schließe, es weiter läuft, bis es fertig ist, speichert das Ergebnis in meinem R-Arbeitsverzeichnis.

Ich habe versucht, mit nohup R &, aber ich bin mir nicht sicher, ob der Prozess erfolgreich abgeschlossen.

Frage 2 Wenn ich es bewerkstellige, Frage 1 zu implementieren, wie könnte ich weiterhin R verwenden, um andere Aufgaben auszuführen? und

Frage 3 Wie überprüfe ich die Aufgabe in Q1 noch läuft.

mein Versuch, auf einem Skript sieht wie folgt aus

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

ich das Skript in meinem Arbeitsdirektor gespeichert haben als aR

und an der Eingabeaufforderung verwendet, nach meinem Arbeitsverzeichnis zu ändern chmod + x aR nohup ./aR &

Was müsste ich korrigieren? Danke

+3

Check-out-Bildschirm (https://www.gnu.org/software/screen/). Sie können eine Terminal-Sitzung ein- und auschecken, ohne sie zu beenden, sodass sie auch nach dem Trennen der Verbindung fortgesetzt werden kann. –

+0

Sie können auch mehrere Bildschirmsitzungen gleichzeitig haben. Jeder kann seine eigene Sitzung von R offen haben. –

+1

Vergessen Sie "Bildschirm" und lassen Sie es in Rente gehen. Verwenden Sie [** 'tmux' **] (https://tmux.github.io/), einen modernen Ersatz. –

Antwort

1

Sie möchten R in "Batch" -Modus ausführen. Siehe (https://stat.ethz.ch/R-manual/R-devel/library/utils/html/BATCH.html)

Der folgende Befehl ist ein Beispiel aus diesen Dokumenten. Das "&" sagt "führen Sie das getrennt von der Anmeldungssitzung des Benutzers" aus, also wenn Sie sich abmelden, wird es weiterhin ausgeführt.

R CMD BATCH [options] infile [outfile] & 

Sie können hier wie besprochen verwenden nohup (http://streaming.stat.iastate.edu/wiki/index.php/Running_Jobs_in_the_Background)

nohup R CMD BATCH ./myprog.R & 
Verwandte Themen