被监控的程序是多线程程序,没有界面,单运行实例。
现在想到一种方法就是被监控的单独开一个线程与看门狗程序进行socket通讯,定时发送心跳包,看门狗程序在一定时间内没收到心跳包就杀掉被监控者,并重启程序。
但是实际情况是当被监控程序的其它线程发生异常时,会弹出windows的系统的异常窗口,通讯的线程还是一样能够发送心跳包,这样就无法达到异常后能重启的要求。
当然在程序中尽可能的加上异常处理是个方法,但作为一个需要长时间运行的服务程序,谁也无法保证不出异常。
不知各位还有没有其它的方法?
谢谢!
现在想到一种方法就是被监控的单独开一个线程与看门狗程序进行socket通讯,定时发送心跳包,看门狗程序在一定时间内没收到心跳包就杀掉被监控者,并重启程序。
但是实际情况是当被监控程序的其它线程发生异常时,会弹出windows的系统的异常窗口,通讯的线程还是一样能够发送心跳包,这样就无法达到异常后能重启的要求。
当然在程序中尽可能的加上异常处理是个方法,但作为一个需要长时间运行的服务程序,谁也无法保证不出异常。
不知各位还有没有其它的方法?
谢谢!
解决方案 »
- IBM优秀答辩考题急求:封装一种“任务调度”行为,要求低优先级的任务可以“打断”高优先级任务,且每个任务都有优先级(0~31数字),要求用“线程来模拟任务”
- 学习SDK 应该从哪里学习?
- SendMessage和PostMessage在什么时候用?
- 如何调用dll里的类函数
- CrazyAzreal过来接分
- VC中,应该可以继承对话框?但如何继承呢?。。。。。。。。。
- 关于DirectX的简单问题。
- 高级程序员考完了!!!
- 各位高手大侠,进来指点一下??
- 我把老板炒了
- 请问在VC++中调用Yahoo Web API应该用什么方法?
- 关于对话框间数据传递!~~(菜鸟提问)有说的不对的,请不要笑话!~~
方法1:如楼上。
方法2:SetErrorMode,也可在异常时自动终止进程。
谢谢!