如何导致我的嵌入式 Linux 设备的看门狗重置

Ank*_*wal 5 linux bash kernel embedded watchdog

有没有类似的命令

vi > out
vi | out
Run Code Online (Sandbox Code Playgroud)

我可以用来导致我的嵌入式 linux 设备的看门狗重置吗?

Sha*_*off 15

如果您的系统上有一个看门狗,并且有一个使用 的驱动程序/dev/watchdog,那么您所要做的就是杀死提供它的进程;如果没有这个过程,那么你可以touch /dev/watchdog一次打开它,如果你再不碰它,它就会重置。

您可能还对使用“magic sysrq”方式重置设备感兴趣。如果您有一个CONFIG_MAGIC_SYSRQ编译了该功能的内核,那么您可以echo 1 > /proc/sys/kernel/sysrq启用它,然后echo b > /proc/sysrq-trigger重新启动。当您这样做时,它会立即重新启动,而无需卸载或同步文件系统。

  • 简单地杀死看门狗守护进程可能还不够好。根据看门狗设备的配置方式,如果 /dev/watchdog 关闭,它可能会禁用看门狗。在这种情况下,您可以尝试将 SIGSTOP 发送到您的看门狗进程。 (3认同)

小智 8

如果您认为看门狗运行正常,并想测试它是否真的能够恢复崩溃的系统,那么您可以通过使用“魔术 sysrq”来使系统崩溃并导致内核崩溃,从而比 Shawn 的回答做得更好。首先同步您的文件系统是个好主意,因此请以 root 身份执行以下操作:

sync; sleep 2; sync; echo c > /proc/sysrq-trigger
Run Code Online (Sandbox Code Playgroud)

如果启用了 sysrq,这应该会导致内核崩溃。然后,如果您等待大约 60 秒(看门狗模块的典型超时),您应该会看到机器重新启动。请注意,这仅适用于硬件看门狗,而不适用于“softdog”模块。