Laddie事件处理系统:logmuxd的深入解析
在设备运行过程中,当警报或其他关键事件发生时,设备需要做出响应,比如CPU温度异常、电池电量低、磁盘空间不足等情况。然而,在Linux系统中,通用的事件处理系统并不常见。通常在设备系统测试接近尾声时,事件处理的需求才变得明显,因此这往往是事后才考虑的问题,代码也常常是临时拼凑且集成性较差。
为了解决这些问题,我们构建了自己的事件处理系统logmuxd,它使用日志记录来捕获感兴趣的事件。以下将详细介绍构建logmuxd的原因、它的特性、主要表格以及使用示例。
构建新事件处理系统的原因
我们发现,按时交付且无错误的代码往往是我们没有编写的代码。新代码通常存在漏洞且交付延迟。那么为什么要编写一个日志守护进程来进行事件处理呢?这主要有两个方面的原因:一是为什么选择日志记录作为机制;二是为什么不使用现有的日志系统。
日志记录是事件报告的理想机制。所有我们感兴趣的事件都已经被syslog消息捕获,或者可以很容易地被捕获。几乎每种编程语言都有syslog库,而且syslog易于理解、相对安全,并且在CPU和内存使用方面都很高效。
在事件处理方面,仅次于syslog的是D - Bus,它是一个常用于分发桌面事件的开源软件包。D - Bus提供了允许进程交换消息的库和API,但前提是两个进程都支持D - Bus。使用syslog的遗留应用程序必须重写才能添加D - Bus支持。此外,D - Bus支持的语言范围不如syslog广泛,并且通常需要运行两个守护进程,这使得它在RAM和CPU使用方面相对较高。需要注意的是,D - Bus在大多数Linux桌面系统中是标准配置,但对于大多数Linux设备的事件处理来
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



