Некоторое время назад я стал использовать OrangePi в качестве роутера и системы а-ля умный дом для управления котлом на даче. Система работает достаточно стабильно. Но иногда из-за скачков напряжения или каких то других причин OrangePi переставал выходить на связь.
Решением стало использование watchdog
На OrangePi у меня установлена Ubuntu 16, для включения watchdog был найден простой путь:
В файле /etc/systemd/system.conf раскомментируем или добавим строки:
nano /etc/systemd/system.conf
... RuntimeWatchdogSec=16 ShutdownWatchdogSec=10min |
Максимальный таймаут, установленный в системе, находится в параметре g_timeout. Вы можете узнать его командой
dmesg | grep sunxi_wdt_probe [ 1.002511] sunxi_wdt_probe: devm_ioremap return wdt_reg 0xf1c20ca0, res->start 0x01c20ca0, res->end 0x01c20cbf [ 1.002660] sunxi_wdt_probe: initialized (g_timeout=16s, g_nowayout=0) |
после reboot смотрим, слушается ли системой watchdog:
lsof | grep /dev/watchdog systemd 1 root 4w CHR 10,130 0t0 1200 /dev/watchdog |
Все в порядке, systemd кормит собаку. Но нужно это как то проверить. На работающих и девайсах, находящихся в работе онлайн лучше этого не делать, нужно находиться возле девайса (чтобы его перезагрузить при необходимости руками)!
Запускаем fork бомбу:
:(){ :|: & };: |
Через секунду система повиснет и должна будет перезагрузиться. Но это не точно 😀
Второй вариант нагрузить систему до предела: echo c > /proc/sysrq-trigger
Т.е. ни каких аппаратных средств не нужно? У меня тоже периодически виснет опенхаб установленный на orange pi pc2
У меня помогало, проверьте у себя запуском форк-бомбы