我有一个无头 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