被监控的程序是多线程程序,没有界面,单运行实例。
现在想到一种方法就是被监控的单独开一个线程与看门狗程序进行socket通讯,定时发送心跳包,看门狗程序在一定时间内没收到心跳包就杀掉被监控者,并重启程序。
但是实际情况是当被监控程序的其它线程发生异常时,会弹出windows的系统的异常窗口,通讯的线程还是一样能够发送心跳包,这样就无法达到异常后能重启的要求。
当然在程序中尽可能的加上异常处理是个方法,但作为一个需要长时间运行的服务程序,谁也无法保证不出异常。
不知各位还有没有其它的方法?
谢谢!