检测内核活动并在内核冻结时重新启动的脚本

检测内核活动并在内核冻结时重新启动的脚本

我正在运行一台运行 GPU 的机器,有时会导致机器冻结。当我查看 syslog 文件时,它显示内核已挂起:

"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

我想创建一个脚本来检测内核中的活动,这样当内核挂起时,它会自动启动机器。但是,当我运行 bash 脚本并跟踪 syslog 文件并查找某些特定关键字(如 kernel)时,该脚本会在内核冻结时停止运行,因此它没有机会执行重启命令。

有没有办法跟踪内核活动,这样当它冻结时,它会自动重启?就像内核崩溃时自动重启一样。

问候

答案1

大多数机器都有一个/dev/watchdog由内核驱动程序为某些内置硬件提供的设备。用户空间api相当简单,现在还有一个西弗吉尼亚大学命令来获取有关设备硬件特性的信息。还有一个 systemd配置选项 RuntimeWatchdogSec在启动时进行设置。

通用看门狗操作是,为看门狗硬件配置一个操作和设定的时间延迟(某些硬件具有固定配置),然后启动它,并且必须在该延迟内反复触发,否则将导致操作,通常是重置。有时,在关闭设备时,看门狗会被清除,但通常这不是理想的情况,因此可以将看门狗配置为无论如何都继续计时和触发。重新启动时,重置的原因可能来自设备或其他硬件,因此我们可以看到看门狗是原因。

相关内容