在Linux上使用c构建的两个独立进程是否有办法从全局位置获取某种每启动伪随机种子/值?
简而言之,我有两个简单的进程,希望通过随机命名的Unix域套接字相互通信,如下所示:
这个想法是随机化两个进程在启动时使用的文件名,但是他们需要知道一些方法来确定公共路径而不事先相互通信。
我已经尝试使用starttime
进程的init
,在c
中有效执行以下命令:
cat /proc/1/stat | cut -d ' ' -f22
但是,此值在启动到启动时通常是相同的,因此它不够随机。我在考虑编写一个可以提供这个值的简单Linux内核模块,但这看起来有些过分。
是否有一些随机数据源在单次启动时保持不变,但在后续启动时没有,我可以通过Linux中的非root进程读取?
答案 0 :(得分:6)
/proc/sys/kernel/random/boot_id
包含启动时生成的随机UUID。