我有一个守护进程正在运行并完成它的工作。我希望能够在运行时从中收集统计信息。我的环境是Linux,编程语言是C。
一个选项是让守护进程写入某个日志文件,稍后解析/分析该文件以获取统计信息。此选项无法在不重新启动守护程序进程的情况下灵活地更改采样率。此外,它涉及解析日志文件。
另一种选择是在守护进程和统计信息收集器进程之间使用共享内存。这需要在修改为共享区域时手动复制所有受监视的变量。
使用管道或套接字不是首选,因为它需要阻塞或创建新线程。
我想知道是否有一些像共享内存这样的技术,但我需要能够将流程变量与共享区域内的特定地址相关联。每当变量发生变化时,我都不需要自己复制变量。
欢迎任何建议。
修改
我想要的实际上就像Linux上的/proc
文件系统,但用户空间进程。