【发布时间】:2017-09-03 09:27:51
【问题描述】:
我正在尝试使用 POSIX IPC 在 Linux 上的两个不同进程之间建立通信。我正在使用 python 3 和基于这个库 http://semanchuk.com/philip/posix_ipc/ 的 posix 消息队列。
问题是我想在以 root 身份运行的服务器和以普通用户权限运行的客户端(单独的 python 程序)之间进行通信。
如果客户端创建消息队列那么它就可以工作,大概是因为它在普通用户下分配,而在root下运行的进程具有更高的权限。但是,我希望服务器创建消息队列,因为这样可以在服务器终止等时正确管理消息队列的关闭。
根进程是否可以创建 IPC 消息队列并允许在不同用户下运行的进程写入队列?如果有怎么办?
或者有没有可以替代 POSIX IPC 的替代品(例如 Sys V)? 我希望避免使用 UNIX 套接字,因为我不想使用额外的开销。
-- 最新尝试更新--
我已经阅读了我能找到的所有文档。图书馆自述文件说他们发现它不管权限如何都可以工作,但这不是我的经验。
Linux 编程接口(库所依赖的)声明同时使用 mode 和 umask,但即使我在消息队列设置中使用 os.umask(000) 后跟 mode=666,我仍然会从客户。
【问题讨论】:
标签: python python-3.x posix ipc root