【发布时间】:2014-12-21 13:53:15
【问题描述】:
我有一个 R 包,它通过 Rmpi 包向我运行的 OpenMPI 集群发送作业。在从控制台运行的 R 会话中,一切都按预期工作。但是,当我尝试像这样从我的 OpenCPU 服务器执行相关功能时(更改了细节以保护无辜者):
curl -XPOST http://99.999.999.99/ocpu/library/MyPackage/R/my_cluster_function
我收到此错误:
R call failed: process died.
(包中的其他非集群调用函数通过 OpenCPU 按预期工作)。我在/var/log/kern.log 中注意到apparmor 发出的DENIED 的各种请求,我已经能够通过在/etc/apparmor.d/opencpu.d/custom 中添加条目来解决其中的大部分请求,以允许OpenMPI 访问它需要的文件。但是,我无法解决与位置"/" 的“打开”请求相关的这两个问题(同样,IP 地址已更改):
Oct 26 03:49:58 99.999.999.99 kernel: [142952.551234] type=1400 audit(1414295398.849:957): apparmor="DENIED" operation="open" profile="opencpu-main" name="/" pid=22486 comm="orted" requested_mask="r" denied_mask="r" fsuid=33 ouid=0
Oct 26 03:49:58 99.999.999.99 kernel: [142952.556422] type=1400 audit(1414295398.857:958): apparmor="DENIED" operation="open" profile="opencpu-main" name="/" pid=22485 comm="apache2" requested_mask="r" denied_mask="r" fsuid=33 ouid=0
将此添加到我的 apparmor 规则没有帮助:
/* r,
两个问题:
- 为什么 opencpu 试图从我的根目录读取数据(或者这是否意味着别的)?
- 更紧急的是,我该如何解决这个 apparmor 问题?
谢谢。
【问题讨论】:
-
你试过规则
/ r吗?在 apparmor 中,这与/* r不同。 -
啊……那行得通。谢谢!如果你想把它变成一个答案,我会接受它。
标签: r mpi openmpi opencpu apparmor