Как закрыть Rserve из командной строки

этот вопрос относится к близкому соединению и, возможно, также к этому закройте Rserve. Однако в последнем случае соединения открыты, а в первом случае в ответе не указано, как «убить» сервер.

Важно сказать, что я новичок в Rserve, и сегодня я впервые использовал его для небольшого взаимодействия R-python. Я запустил Rserve из командной строки как:

% R CMD RServe

Хотя я закрыл соединение после сеанса, но теперь, когда я снова пытаюсь перезапустить Rserve с новой конфигурацией, я получаю сообщение об ошибке:

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

что довольно ясно. Более того, ps ax | grep Rserve возвращает:

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

что я понимаю, что действительно означает, что сервер работает. Я пробовал несколько вещей:

% 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

и наконец

% R CMD shutdown
 shutdown: NOT super-user

Мне интересно, должен ли я запускать:

% sudo R CMD shutdown

(Я хотел бы убедиться, прежде чем запускать эту команду, на случай, если я что-то напортачу)

Во всяком случае, вопрос был бы очень простым. Как я могу закрыть сервер, чтобы повторно запустить его.

Спасибо заранее за ваше время!


person Javier    schedule 05.05.2015    source источник


Ответы (1)


Ты смущен:

 R CMD something

всегда будет идти к R. И R больше не знает, что Rserve работает, даже если вы могли запустить его через R CMD Rserve: теперь это разные процессы.

Что вы должны сделать, это

 kill 18177       # or possibly  kill -9 18177

и есть обертки для kill, которые сначала grep для имени и находят для вас PID:

 killall Rserve   # or possibly  killall -9 Rserve

-9 посылает более высокий уровень интенсивности SIGKILL (т.е. "действительно иди и умри сейчас"), чем значение по умолчанию -15 для SIGTERM) (т.е. "пожалуйста, остановитесь сейчас").

person Dirk Eddelbuettel    schedule 05.05.2015
comment
Большое спасибо Дирку за решение моей путаницы. Я редко использую R CMD, поэтому у меня было много причин, по которым можно было запутаться. Спасибо еще раз. - person Javier; 05.05.2015
comment
Не за что. Я большой поклонник Rserve. - person Dirk Eddelbuettel; 05.05.2015
comment
Я только начал его использовать и, честно говоря, до сих пор не до конца осознал его возможности (я знаю, что это, по сути, сервер, но, конечно, это еще не все). Я использую pyRserve весь день. До сих пор плохо понимаю, как R и python взаимодействуют через Rserve, но это всего лишь вопрос времени. Я чувствую, что это будет очень полезно! - person Javier; 05.05.2015