这个问题与close connection有关,也可能与close Rserve有关。但是,在后一种情况下,有连接打开,在第一种情况下,答案没有说明如何" kill"服务器。
重要的是要说我是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
(我想在运行该命令之前确保,以防我搞砸了)
无论如何,这个问题很简单。如何关闭服务器以重新运行它。
提前感谢您的时间!
答案 0 :(得分:8)
你很困惑:
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
(即“现在真的死去”)强度超过SIGTERM
的默认值-15(即'请立即停止')。