6

这个问题与close connection 相关,也许也与这个close 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

(我想在运行该命令之前确保,以防我搞砸了)

无论如何,这个问题将非常简单。如何关闭服务器以重新运行它。

在此先感谢您的时间!

4

1 回答 1

8

你很困惑:

 R CMD something

将始终转到 R。即使您可能已经通过以下方式启动它,也R不再知道正在运行:这些现在是不同的进程。RserveR CMD Rserve

你应该做的是

 kill 18177       # or possibly  kill -9 18177

并且有一些包装器kill,首先 grep 名称并为您找到 PID:

 killall Rserve   # or possibly  killall -9 Rserve

-9发送一个比默认的 -15 更高阶的SIGKILL强度(即“真的去死吧” SIGTERM)(即“请立即停止”)。

于 2015-05-05T12:40:02.330 回答