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

Posted

技术标签:

【中文标题】如何在 CentOS6 上启动/停止/刷新 OpenCPU?【英文标题】:How to start/stop/flush OpenCPU on CentOS6? 【发布时间】:2014-12-29 15:11:56 【问题描述】:

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

有几件事似乎不起作用:

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

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

非常感谢,--梅尔。

【问题讨论】:

【参考方案1】:

一些答案​​

运行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 上提出问题。

【讨论】:

谢谢,这一切都澄清了。我按照建议构建并加载了一个单独的数据包,它比在Rprofile 中编辑自定义指令更有效并且更精简。我对以 root 身份运行的 OpenCPU 感到困惑(我确实有一个以 root 身份运行的 httpd 进程,但结果并不相关)。关于使用 OpenCPU 配置持久变量和数据集的文档有点分散,我花了一段时间才找到最佳方法。在 OpenCPU 服务器手册中添加一节可能很有用。 是的,我知道我不擅长文档。也许可以创建一个 wiki 左右,让人们帮助创建一些手册。 你找到在CentOS6上配置opencpu运行用户库的方法了吗:server.com/ocpu/user//library?这似乎在 user = apache 时有效,但在其他情况下无效。 @user338714 你遇到了什么错误?你read about SELinux了吗? 是的,我按照说明在 CentOS6 上构建和安装(我使用的是 RHEL 机器)并暂时禁用了 SELinux。当我尝试查看某个用户下的库时,我收到一条消息,指出找不到该用户,但 apache 用户除外,它说没有找到任何库。该机器还运行着 rstudio 服务器和闪亮服务器,我希望使用类似于 per_user 闪亮设置的 opencpu。如果我不包含 ../user//.. 在 url 中,一切正常。

以上是关于如何在 CentOS6 上启动/停止/刷新 OpenCPU?的主要内容,如果未能解决你的问题,请参考以下文章

停止 MySQL 服务窗口

PostgreSQL 服务无法停止/启动/重启

Centos7.3_x86_64通过systemctl控制tomcat8.0.46启动和停止

httpd服务如何开机启动

如何在 CollectionView iOS 中停止自动重新加载和刷新图像

CollectionView 标题在滚动时停止刷新/重新加载数据