Я пробовал много вариантов как в Mac, так и в Ubuntu. Я прочитал документацию RserveКак я могу изящно закрыть Rserve?
http://rforge.net/Rserve/doc.html
и что для пакетов Rserve и RSclient:
http://cran.r-project.org/web/packages/RSclient/RSclient.pdf
http://cran.r-project.org/web/packages/Rserve/Rserve.pdf
Я не могу понять, что правильный рабочий процесс для открытия/закрытия в Rserve и для закрытия Rserve «изящно».
Например, в Ubuntu я установил R из источника с ./config --enable-R-shlib (после документации Rserve), а также добавил строку «control enable» в /etc/Rserve.conf.
В терминале Ubuntu:
library(Rserve)
library(RSclient)
Rserve()
c<-RS.connect()
C## this is an Rserve QAP1 connection
## Trying to shutdown the server
RSshutdown(c)
Error in writeBin(as.integer....): invalid connection
RS.server.shutdown(c)
Error in RS.server.shutdown(c): command failed with satus code 0x4e: no control line present (control commands disabled or server shutdown)
Я могу, однако, закрыть соединение:
RS.close(c)
>NULL
C## Closed Rserve connection
После закрытия соединения, я также попробовал варианты (также пытались с аргументом 'с' , даже если соединение закрыто):
RS.server.shutdown()
RSshutdown()
Итак, мои вопросы:
1- Как я могу закрыть Rserve изящно?
2- Может ли Rserve использоваться без RSclient?
Я также посмотрел на
How to Shutdown Rserve(), running in DEBUG
но вопрос относится к режиму отладки, а также нерешенным. (У меня недостаточно репутации, чтобы комментировать/спрашивать, работает ли shutdown в режиме без отладки).
Также посмотрел на:
how to connect to Rserve with an R client
Спасибо так много!
Спасибо! Итак, если я правильно понимаю, чтобы связать R-процесс с экземпляром Rserve, я должен использовать RSclient, правильно? Мне также нужно было указать команду «args» в Rserve (в противном случае я получаю фатальную ошибку), а при использовании debug = TRUE командная строка продолжает ждать, и она заканчивается на «Ошибка: невозможно установить соединение с сеансом R». Таким образом, используя mac, работает только опция debug = F, и я использовал систему («ps aux | grep Rserve») [это открывает 2 соединения с двумя разными идентификаторами ..]. Огромное спасибо!! – user3570398
Это отлично подходит для Rserve (порт = 6311, debug = FALSE, args = "- no-save"). Спасибо! – user3570398