我需要编写一个应用程序来持续监视系统/应用程序的行为并标记出根本“没有响应”的进程。
我的意思是在 Windows 上是这样的:
或在 Android 上这样:
有人可以帮我定义这种“挂起”或“不响应”的行为,以便我可以编写一个应用程序来监控这些参数。
我只能想到一个参数:
持续监控每个应用程序的处理器使用情况,如果它们在某些 'y' 单位时间内消耗超过 'x'% 的 CPU,则将它们标记为无响应。
平台:Linux/Android/Windows
你需要像看门狗这样的东西。要么应用程序必须定期执行一些预定义的活动,而您只需定期检查它是否执行了此活动。或者您向它必须回答的应用程序发送某种请求。
在某些 'y' 单位时间内消耗高于 'x'% 的 CPU与不响应无关。应用程序可能会消耗大量 CPU,但仍会响应系统或用户事件。同样,应用程序完全不消耗 CPU,因为它等待输入,并且在此期间不响应任何其他请求。
我们在企业中有一些活跃的进程,有时由于长时间运行或内存问题,它们会关闭而不会引发异常。他们只是死了。
我们在这个应用程序中实现了一个类,它将自己的进程活动记录到文件或数据库表中。
我们使用另一个观察者监视器来获取此记录的数据事件 X 分钟,因此如果超过 X 分钟并且没有出现记录数据,则该过程无法正常工作。
我们使用 psexec 远程杀死进程并重新启动它。