c++ - 如何检测远程机器上的内核 panic ?

标签 c++ linux kernel rhel panic

我有一个软件可以监控本地网络上多台 Linux 机器的健康状况。它所做的其中一项检查是定期对所有机器执行 ping 操作,以确保它们能够响应。

我最近注意到一台或多台机器可能处于内核 panic 状态但仍然响应 ping。我想知道我是否可以在 C++ 中进行某种检查,在以下任一情况下返回 true:

a) 远程机器没有响应(当前使用 ping 语句执行此操作)。 b) 远程机器有响应,但处于内核 panic 状态。

问题是,我不知道在内核 panic 期间什么有效,什么无效。

如果有帮助,这是在 RHEL 5.7 上的。提前致谢!

最佳答案

答案是:视情况而定。有时内核 panic 甚至会停止 ping 响应。 “无响应”的定义将取决于机器的用例。如果有一种方法可以确定机器的主要用途仍然可以在本地实现,您可以使用 SNMP 和/或网络(或其他一些网络协议(protocol))来确保它响应。

一种常见的监控方法(有许多针对各种 vector 和服务的预制插件)是使用 nagios、icinga 或类似的工具。

关于c++ - 如何检测远程机器上的内核 panic ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16906276/

相关文章:

operating-system - 是什么阻止用户应用程序通过 "hijack"进入内核模式?

c++ - std::common_type 实现

c++ - 如何在模板参数中分离函数类型返回类型和参数

c++ - 通过按值传递的 CRTP 模式的单元化拷贝

c++ - 为什么在使用多重继承时不同的 `this` 地址

html - 如何使用 mailx 发送附件和 html 正文

linux - 使用 e1000e 网络驱动程序而不是 tg3

c - 在 solaris 的内核模块代码中获取数据作为 pfiles

linux - 新的linux程序员

java - 不需要操作系统的.NET CLR?