2015-05-05 28 views
6

Diese Frage bezieht sich auf close connection und vielleicht auch auf diese close Rserve. Im letzteren Fall sind jedoch Verbindungen offen, und im ersten Fall gibt die Antwort nicht an, wie der Server "gekillt" werden soll.So schließen Sie Rserve über die Befehlszeile

Es ist wichtig zu sagen, dass ich Rserve neu bin, und ich habe es heute zum ersten Mal für einige milde R-Python-Interaktion verwendet. Ich begann rserve von der Kommandozeile als:

% R CMD RServe 

ich hatte ich die Verbindung nach der Sitzung geschlossen, aber wenn ich versuche jetzt neu zu starten rserve wieder mit einer neuen Konfiguration bekomme ich den Fehler:

% ##> SOCK_ERROR: bind error #48(address already in use) 

was ziemlich klar ist. Außerdem ps ax | grep Rserve Rückkehr:

% ps ax | grep Rserve 
18177 ?? Ss  0:00.33 /Library/Frameworks/R.framework/Resources/bin/Rserve 
18634 s006 U+  0:00.00 grep Rserve 

, die ich verstehe, dass in der Tat bedeutet, dass der Server ausgeführt wird. Ich habe ein paar Dinge ausprobiert:

% R CMD RSclose 
/Library/Frameworks/R.framework/Resources/bin/Rcmd: line 62: exec: RSclose: not found 

% R CMD RSshutdown 
/Library/Frameworks/R.framework/Resources/bin/Rcmd: line 62: exec: RSshutdown: not found 

und schließlich

% R CMD shutdown 
shutdown: NOT super-user 

Ich frage mich, sollte ich laufen dann:

% sudo R CMD shutdown 

(Ich möchte sicherstellen, bevor dieser Befehl ausgeführt wird , falls ich etwas schraube)

Wie auch immer, die Frage wäre sehr einfach. Wie kann ich den Server schließen, um ihn erneut auszuführen?

Vielen Dank im Voraus für Ihre Zeit!

Antwort

8

Sie sind verwirrt:

R CMD something 

wird immer auf R. gehen Und R nicht mehr weiß, Rserve läuft, auch wenn Sie es über R CMD Rserve gestartet haben: Das sind nun unterschiedliche Prozesse.

Was sollten Sie tun, ist

kill 18177  # or possibly kill -9 18177 

und es gibt Wrapper kill des zuerst grep für den Namen und finden Sie die PID für Sie:

killall Rserve # or possibly killall -9 Rserve 

Die sendet eine höhere Ordnung SIGKILL (dh "gehe wirklich und sterbe jetzt") Intensität als der Standardwert von -15 für SIGTERM) (dh 'bitte jetzt stoppen').

+0

Vielen Dank Dirk für die Lösung meiner Verwirrung. Ich verwende selten R CMD, also hatte ich viele Fronten, durch die ich verwirrt werden konnte. Danke noch einmal. – Javier

+2

Mein Vergnügen. Ich bin ein großer Fan von Rserve. –

+1

Ich habe gerade angefangen, es zu benutzen und um ehrlich zu sein, ich verstehe immer noch nicht ganz seine "Macht" (ich weiß, dass das im Grunde ein Server ist, aber sicherlich gibt es mehr dazu). Ich habe pyRserve den ganzen Tag benutzt. Ich verstehe immer noch nicht gut, wie R und Python über Rserve kommunizieren, aber es ist nur eine Frage der Zeit. Ich denke, das wird sehr nützlich sein! – Javier