服务程序监测框架的设计
OS:Linux
部署:Amazon EC2
背景:系统中有一些 run away 的服务程序 s,由 cron 启动,跑完结束。s 的任务是处理 /tmp/s 下多个子目录中的文件。s 在启动时会读取 /tmp/s/.concurrent-level 文件确定 fork 的子进程的数目。每个 /tmp/s 下的子目录同一时间只能有一个进程访问,所以每个 s 子进程会在自己工作路径设置锁文件,并且跳过有锁文件的目录。
s 在执行过程中,会写入一个 log 文件,内容类似 apache access log,包括每个进程自己的 PID,记录时间和进度信息。
cron 每分钟执行一次 s。
目标:
做一个守护进程,监测一个或多个文件变化(类似 tail -f),以行为单位进行匹配,按照配置文件指定的状态机激发不同的事件(如:看见 /^Process end/ 时,调用脚本 /tmp/s-ended)
想法:
tail -f 据说使用的是 inotify / dnotify 等技术(http://www.quora.com/How-is-tail-f-implemented )。启子进程 tail -f 每个 log 文件,poll (或其它方式等待变化)
问题:
配置文件(状态机)定义。如何通过简单清晰的方式(JSON)表达相对完整的状态变化。
部署:Amazon EC2
背景:系统中有一些 run away 的服务程序 s,由 cron 启动,跑完结束。s 的任务是处理 /tmp/s 下多个子目录中的文件。s 在启动时会读取 /tmp/s/.concurrent-level 文件确定 fork 的子进程的数目。每个 /tmp/s 下的子目录同一时间只能有一个进程访问,所以每个 s 子进程会在自己工作路径设置锁文件,并且跳过有锁文件的目录。
s 在执行过程中,会写入一个 log 文件,内容类似 apache access log,包括每个进程自己的 PID,记录时间和进度信息。
cron 每分钟执行一次 s。
目标:
做一个守护进程,监测一个或多个文件变化(类似 tail -f),以行为单位进行匹配,按照配置文件指定的状态机激发不同的事件(如:看见 /^Process end/ 时,调用脚本 /tmp/s-ended)
想法:
tail -f 据说使用的是 inotify / dnotify 等技术(http://www.quora.com/How-is-tail-f-implemented )。启子进程 tail -f 每个 log 文件,poll (或其它方式等待变化)
问题:
配置文件(状态机)定义。如何通过简单清晰的方式(JSON)表达相对完整的状态变化。
...全文
相关推荐
智能家居环境监测系统设计[可运行源码]
在程序设计方面,文章提供了核心框架,这为开发人员进行后续开发和扩展提供了基础。核心框架包括主程序流程、中断服务程序、以及各种功能模块的子程序。由于采用了模块化的设计理念,系统的扩展性得到了显著提升。
构建煤矿水位监测系统的实践与心得
本文介绍了煤矿水位监测系统的设计与实现,重点讨论了基于Intel 8086微处理器的监测程序。系统通过水位传感器、计时器和警报装置来监控水位变化,并在达到设定的水位时发出警报。文章详细说明了硬件接口、端口配置以及软件逻辑的实现,包括如何初始化计时器、处理中断以及监测水位变化。此外,文章还提供了一系列的练习题,鼓励读者进一步思考如何改进系统设计,例如,通过自动控制泵的启停来优化操作流程。
参考资料-基于MSP430单片机的电池监测仪设计与实现.zip
软件设计 - 应用程序框架:设计中断服务程序,实现实时数据采集和处理。 - 数据处理算法:编写电压、电流、温度的计算程序,实现SOC估算算法。 - 用户界面:设计简单易读的数据显示界面。
基于STM32的智能水质监测系统设计论文
物联网技术在这项设计中扮演了重要角色,通过连接传感器、微控制器和无线通信模块,构建了一个分布式监测网络。数据可以实时上传并存储在云端,便于分析和管理。
基于无线通讯网络的公路监测系统设计框架 (2007年)
"基于无线通讯网络的公路监测系统设计框架 (2007年) - 山东师范大学学报(自然科学版) - 张森、张文娟、曹鹏"文章探讨了如何利用无线通讯网络来设计公路监测系统,以提高公路服务质量和应对交


其它技术问题
