【发布时间】:2014-04-22 14:38:17
【问题描述】:
如果我要使用 Linux 环境变量作为在不同进程之间共享信息的简单方法(用 Python 编写),我需要注意哪些含义/注意事项?例如,在单处理器/核心系统上读写是原子的吗?
我正在 Raspberry Pi 上设计一个嵌入式系统,我将在其中有多个独立的进程来执行监视和控制。这些进程有时需要访问将由另一个进程更新的共享“属性”。例如,一个进程可能会监控 RFID 阅读器并使用最后刷卡的序列号更新环境变量。然后其他进程将能够访问该序列号并使用它。
我考虑这个想法的唯一原因是简单。我只对在进程之间共享简单的字符串和数字感兴趣,我觉得这比使用套接字之类的东西更简单。
【问题讨论】:
-
环境变量绝对不是这项工作的工具。它们是在进程启动之前设置的,只能由该进程更改,并且只能由该进程启动的子进程观察到更改。没有真正的交流能力,除了一个方向……
-
即使可以,也不要这样做。没有“正常”的方法可以做到这一点,你可以做的是可怕的黑客攻击,只会导致心痛。而是问一个问题,详细说明流程需要如何交换信息,人们可以帮助您将选择范围缩小到适当的 IPC。
-
谢谢,经过一些实验,我得出了同样的结论——你不能像我预期的那样真正使用它们。
标签: python linux environment-variables inter-process-communicat