当前位置:主页   - 电脑 - 程序设计 - C/C++
ACL编程之父子进程机制,父进程守护子进程以防止子进程异常退出
来源:网络   作者:zsxxsz   更新时间:2010-07-07
收藏此页】    【字号    】    【打印】    【关闭

  在WIN32平台进行编程时,经常会遇到工作进程因为程序内部BUG而异常退出的现象,当然为了解决此类问题最好还是找到问题所在并解决它,但如果这类导致程序崩溃的BUG并不是经常出现,只有当某种条件发生时才会有,在我们解决BUG的时间里,为了尽最大可能地为用户提供服务可以采用一种父进程守护机制:当子进程异常退出时,守护父进程可以截获这一消息,并立即重启子进程,这样用户就可以继续使用我们的程序了,当然如果子进程的问题比较严重频繁地 DOWN掉,而父进程却不停地重启子进程的话,势必造成用户机系统资源的大量耗费,那我们的程序就如病毒一样,很快耗尽了用户机资源,所以需要父进程能够智能地控制重启子进程的时间间隔。

  本文将给出一个具体的例子(利用ACL库),介绍父、子进程的编程方法。

  一、接口介绍

  1.1 以守护进程方式运行的接口

  创建守护进程的方式非常简单,只需要调用 acl_proctl_deamon_init, acl_proctl_daemon_loop 两个函数即可

  接口说明如下:

  C代码  

/** 
 * 初始化进程控制框架(仅 acl_proctl_start 需要) 
 * @param progname {const char*} 控制进程进程名 
 */ 
ACL_API void acl_proctl_deamon_init(const char *progname); 
 
/** 
 * 控制进程作为后台服务进程运行,监视所有子进程的运行状态, 
 * 如果子进程异常退出则会重启该子进程 
 */ 
ACL_API void acl_proctl_daemon_loop(void);

  1.2 以命令方式来控制守护进程(守护进程即控制进程的意思)

  守护进程启动后,可以以命令方式控制守护进程来启动、停止子进程,或查询显示当前正在运行的子进程。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明