如何在CentOS6上启动/停止/刷新OpenCPU?

时间:2014-11-03 00:33:04

标签: r centos6 opencpu

我已经在CentOS6上成功构建并安装了OpenCPU和RStudio Server。一切都按预期工作,我的本地R包得到了成功的GET / POST响应。

但有些事情似乎无法发挥作用:

  • 我无法想出一个干净的方式来启动/停止/冲洗OpenCPU。我目前正在使用apachectl restart,但我甚至不确定是否按预期重新加载R软件包。我在/usr/lib/opencpu/scripts尝试了Jeroen的bash脚本,但他们似乎需要进行相当多的调整才能在CentOS上工作。
  • (可能与上述相关)我在load()文件中使用readRDS()/etc/opencpu/Renviron(也在/etc/opencpu/Rprofile中尝试过)将持久数据集加载到全局环境中 - 但这似乎不起作用。我没有收到任何错误日志,但后续请求中的对象不可用。
  • on Ubuntu OpenCPU似乎配置为在opencpu用户下运行。在CentOS6上,它似乎在安装后在root下运行。我想修改它,但不确定如何。

只是想知道是否有人在CentOS6上配置OpenCPU成功。

非常感谢, - 梅尔。

1 个答案:

答案 0 :(得分:2)

一些答案​​

  • 运行sudo apachectl restart将重新启动。目前没有包含rpm的opencpu的特殊init或systemd脚本,但基本上所有脚本在ubuntu上都是重启apache并将一些消息打印到终端。

  • REnviron文件仅适用于环境变量。您需要使用RProfile来获取自定义代码。另见help。也许它并没有在适当的环境中加载。尝试:load(file, envir = globalenv(), verbose = TRUE)

  • 请注意,建议存储内容的方法是将R包作为延迟加载数据或sysdata.rda(请参阅writing R extensions)。然后,您可以在启动时加载或附加程序包,或者更好的是:从包含应用程序或R函数的程序包中正式导入数据集。

  • Afaik,centos以用户apache运行httpd请求?是什么让你认为opencpu以root身份运行?这当然不是意图。在CentOS上,您有时需要使用SELinux httpd标志来使您的应用程序正常工作,另请参阅rpm readme

rpm软件包比debian软件包更新,测试更少,所以如果您有问题或建议,请在github上打开一个问题。