1

我有一个无头 R 服务器,它服务于最近的rstudio-server.

我需要通过它传递一些对象svSocket

因为svSocket使用 TCL/TK 消息队列,它需要一个有效的 X11 会话,所以我知道我需要在虚拟 X11 环境中嵌入东西。

我通过 ssh 登录服务器,并在命令行中输入以下命令:

sudo Xvfb :0 &
export DISPLAY=":0"
/usr/lib/rstudio-server/bin/rserver &
R

然后我通过其 Web 界面登录 rstudio-server 并键入以下命令:

> library(svSocket)
> startSocketServer()
[1] TRUE

然后,在这个 R 会话中,我输入了以下内容

> library(svSocket)
> con<-socketConnection(host='localhost', port=8888)
> evalServer(con,'2+2')

我希望得到“ 4”结果,但是 R 挂起,从不返回任何提示。

如果我用常规 R 替换 rstudio-server,一切正常。

rsession它处理这个例子的方式有什么特别之处?如何解决?

SessionInfo()

R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04 LTS

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=pl_PL.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=pl_PL.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=pl_PL.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=pl_PL.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
4

1 回答 1

0

启动套接字连接时需要提及端口号

> library(svSocket)
> startSocketServer(port=8888)

它应该在此之后工作。

于 2018-10-31T15:01:03.093 回答