忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 6760 | 回复: 5

监控进程方案设计思路? [复制链接]

论坛徽章:
0
发表于 2014-03-25 20:50 |显示全部楼层
  在关键设备上运行一应用软件,需要该应用软件系统7x24不间断的运行提供服务,
操作系统是linux2.6.3x的版本。
   针对该种应用的特性,为了防止应用系统崩溃退出或陷入死循环不工作状态,初步设定了以下的设计方案,
应用系统运行由两个进程组成,分别为监控进程和工作进程。监控进程与工作进程为父子进程关系。
应用系统启动时,首先是监控进程,把监控进程设置为守护进程的形态,然后fork一子进程C,
   子进程C启动后,使用execl的形式运行一编译好的应用工作软件,提供实质的应用功能。
监控进程启动后,通过命名管道的方式与工作子进程进行通信,读取工作子进程发来的信息帧,确认
工作进程还在正常的运行着,这点类似网络的心跳检测包,当然也使用 select+waitpid的方式非阻塞
的检测等待工作子进程是否崩溃退出。 如果监控进程连续4次没有从管道文件中读取到工作子进程发来的信息,
则认为该工作子进程已经陷入不正常的状态。则中断子进程的运行,重新启动子进程。
   如果检测到工作子进程有崩溃退出的情况,则重新启动工作子进程。

工作子进程在主工作任务线程,每隔2分钟则往管道文件写入一数据,告知监控进程我正在正常的工作中。

此简单的设计方法请各位高手指点下,是否合理,以及能够实现?
各位实际中对关键应用的保护的方案大概是怎样的呢?
另外有以下具体的技术问题也想请教一下各位高手,谢谢!
1 监控进程处于守护进程的状态时,fork一工作子进程,并以execl方式运行工作软件是否正确, 该工作软件
是一多线程架构软件,使用网络为各客户端软件提供服务。
2 是否能够在监控进程中以 select+waitpid的非阻塞的方式同时监控子进程是否退出和官道文件是否可读。


  

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
发表于 2014-07-25 14:54 |显示全部楼层
你这个监控进程与被监控进程容易相互影响。
其中一个挂了会影响另一个。

建议是分开到单独的进程。
这样监控进程和工作进程各自升级什么都不会影响彼此。

监控进程监测工作进程的方式也有很多种。
最简单的是工作进程写日志,监控进程读,看关键日志是否一直正常频率的更新。
还有其他各种IPC.

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2014-09-05 16:30 |显示全部楼层
其实这个问题不难的

建立一个守护程序,每分钟调用你的应用程序
而应用程序在启动的时候,检测是否后台已经有相同的程序在运行,如果有,则退出;否则继续

论坛徽章:
0
发表于 2014-09-09 18:26 |显示全部楼层
谢谢各位的指点与建议,目前是采用进程间IPC的方式让一进程去监视另一进程是否在正常运行中。

论坛徽章:
26
金牛座
日期:2014-09-15 15:59:16程序设计版块每日发帖之星
日期:2015-11-24 06:20:00程序设计版块每日发帖之星
日期:2015-11-25 06:20:0015-16赛季CBA联赛之新疆
日期:2015-12-19 19:05:48IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:3315-16赛季CBA联赛之上海
日期:2016-04-15 19:51:31程序设计版块每日发帖之星
日期:2016-04-17 06:23:29程序设计版块每日发帖之星
日期:2016-04-23 06:20:00程序设计版块每日发帖之星
日期:2016-05-26 06:20:00每日论坛发贴之星
日期:2016-05-26 06:20:00
发表于 2014-11-02 14:24 |显示全部楼层
kacy16 发表于 2014-03-25 20:50
在关键设备上运行一应用软件,需要该应用软件系统7x24不间断的运行提供服务,
操作系统是linux2.6.3x的 ...


erlang 的supervisor能做好你说的事。
http://www.erlang.org/doc/design_principles/sup_princ.html

论坛徽章:
0
发表于 2015-06-07 16:16 |显示全部楼层
参考我以前写的这个 taskeeper
http://bbs.chinaunix.net/thread-2039888-1-1.html
或者 daemontools
http://cr.yp.to/daemontools.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP