Ubuntu和Windows的看门狗软件开发

打印 上一主题 下一主题

主题 983|帖子 983|积分 2949

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为了包管软件运行的鲁棒性,常常在软件筹划中,启用看门狗软件。对于长时间运行的软件,处于各种不可预知的错误,例如:软件的bug、IO非常等等,轻易造成软件瓦解。软件瓦解后,就必要看门狗软件将其拉起来。
如果要开发一个看门狗软件,必要看长时间运行的软件是窗体软件,还是无窗体的软件。对于有窗体和无窗体的软件,看门狗软件的实现方式是不同的。

1.Ubuntu上的看门狗软件的开发

Ubuntu上启动应用程序,必要先利用fork启动子进程,然后,在子进程中启动应用程序,开门狗大致代码如下:
  1. /*
  2. *  检查被开门狗监视的软件的进程是否不存在了,如果不存在了,则要重新拉起来
  3. */
  4. auto ret = ::fork();
  5. if(ret == -1)
  6. {
  7.     break; //出错了,程序退出
  8. }
  9. else if(ret == 0) //子进程
  10. {
  11.     ::execlp(exePath, exeName, params); //启动被开门狗监视的程序
  12.                                         //exePath是要拉起的程序的完整路径
  13.                                         //exeName是要拉起的程序名称
  14.                                         //params是启动程序的命令行参数
  15. }
  16. else //父进程
  17. {
  18.     //...
  19. }
复制代码
1.1 无窗体

如果开门狗程序要拉起的是无窗体的程序,则必要进行如下设置:
假设开门狗程序位于/home/myWatchdog,要让开门狗程序随体系启动而启动,

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

风雨同行

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表