心跳防护程序的作用
心跳防护程序用于实现无人值守的程序的自维护功能,使得被防护程序由于某种异常而导致崩溃时可以自动重新启动,满足无人值守的环境要求。
心跳防护程序适用于那些需要无人值守,长期运行,但程序由于不确定性因素有出现崩溃的可能。说明:本程序不是用来防护代码质量差的程序的。
心跳防护程序的组成
心跳防护程序由两部分组成。分别用于心脏跳动和心脏恢复。
第一部分为心跳计数模块,需要植入被防护程序中,作为程序的心脏。当程序运行正常时,心跳计数也会正常进行。该模块以动态库形式发布。提供心跳启动和心跳终止两个接口。
第二部分为心跳恢复模块。由心跳计数模块启动,监控被防护程序的运行状态,当发现被防护程序运行异常时,删除已存在的进程,重新启动被防护程序,实现心跳继续。该模块以应用程序形式存在。
心跳防护程序的原理
心跳防护程序的核心是在心脏跳动和心脏恢复两个模块之间创建一个信号量。心脏跳动模块负责给信号量增值,心脏恢复模块负责给信号量减值。增减值采用同一频率(每秒一次)。当心脏跳动正常时,信号量的值基本保持不变。如果心脏跳动异常(比如程序崩溃),信号量将不增加。心脏恢复模块通过减值可以侦测到信号量为0,此时认为被防护程序已出现问题,删除被防护程序的已有进程(通过进程名称),然后重新启动新程序。这样就可以保持被防护程序的持续运行。
心跳防护程序
原创
©著作权归作者所有:来自51CTO博客作者草宝虫啊的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:css强制自动换行
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
将MapReduce程序打成JAR包并在Linux虚拟机的上运行
本文介绍了将Maven项目打包并部署到Linux虚拟机的完整流程:1)在pom.xml中配置maven-compiler-plugin和maven-shade-plugin插件以生成可执行JAR;2)通过IDEA的Maven面板执行package命令生成JAR包;3)区分使用包含依赖的胖JAR或原始JAR的场景;4)在Linux环境下通过hadoop jar命令运行MapReduce程序,需确保Hadoop集群正常启动并正确指定输入/输出路径。文中提供了详细的插件配置说明和作业提交命令示例。
#mapreduce #jar #linux maven jar -
黑马 springboot2整合案例制作-书籍管理
对数据层的操作是。
#mybatis #java #前端 #后端 数据 -
如何查看Linux系统信息,Linux查看系统基本信息命令
Linux下如何查看版本信息?包括位数、版本信息以及CPU内核信息、CPU具体型号,今天飞飞将和你们分享
#linux #运维 ci 文件系统 设备信息
















