我知道它/proc
是动态生成的,但我很好奇, iffork
和evecve
进程终止保证被所有其他进程看到立即地。
显然,内核知道这一切,但我希望看到明确的说明,即呈现信息确实总是最新的。我可以想象内核可能会选择通过批量更新用于/proc
.
这听起来不太可能,但是我们的代码有问题,可以用这个来解释。它滥用阅读/proc
来进行“单实例检查”(这是活泼的,恕我直言,这是完全错误的)。当两个实例几乎同时启动时,显然可能会发生这样的情况:每个实例都看到自己和另一个实例,并且都抱怨。然而,我们的客户似乎遇到了相反的问题(没有实例抱怨)。
澄清
这文档指出“为了使会计可扩展,RSS 相关信息以异步方式处理,并且值可能不是很精确”。类似地整个进程列表可以异步处理这就是我希望看到的明显反驳。一个
这回答说
/proc 文件系统中的大多数(如果不是全部)文件都是特殊文件,它们在任何给定时刻的内容都反映了当时实际的操作系统/内核数据,它们不是内容定期更新的文件。
但它没有说“大多数”是否包括我关心的内容,也没有声称是权威性回答。