我正在创建一个故障注入框架,并想做类似的事情:
volatile bool doFaultWriteError;
在我的代码中,我可以检查全局变量来决定是否出错。
在 BSD 中,我听说您可以教 sysctl 在用户空间进程中设置变量。这在Linux中可能吗?我该怎么做?
我目前的计划是有一个 SIGHUP 处理程序来读取“故障配置”文件,然后根据需要设置全局变量。但如果 Linux 中已经有可以做到这一点的东西,那就更简单了。
您可以使用mmap
通过文件处理程序 (shm_open) 共享页面,然后在两个应用程序之间进行通信。
你不能改变另一个进程的环境,如果你能在任何 UNIX 系统中做到这一点,我会感到惊讶。
在另一个问题中描述了一些技巧:有没有办法改变另一个进程的环境变量?但它们只是丑陋的黑客:)