Из systemd руководство: -
ShutdownWatchdogSec=
ShutdownWatchdogSec= may be used to configure the hardware watchdog when the system is asked to reboot.
It works as a safety net to ensure that the reboot takes place even if a clean reboot attempt times out.
By default RuntimeWatchdogSec= defaults to 0 (off), and ShutdownWatchdogSec= to 10min.
These settings have no effect if a hardware watchdog is not available.
В настоящее время существует проблема с выключением моей системы, при которой ядро продолжает печатать сообщение «unregister_netdevice: ожидание освобождения: количество экземпляров = 1» даже через 10 минут после выдачи команды перезагрузки. Я не знаю, что могло вызвать эту проблему, но я надеялся, что ShutdownWatchdogSec принудительно перезагрузится в этом и других сценариях.
Однако система не выключается в установленное время. Все равно занимает 10+ мин. Я внес необходимые изменения в свой /etc/systemd/system.conf:
ShutdownWatchdogSec=4min
Сторожевой таймер присутствует в моей системе
root @ bugkiller: ~ # dmesg | сторожевой таймер grep
[ 0.044094] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[ 4.051861] systemd[1]: Hardware watchdog 'iTCO_wdt', version 0
[ 4.051874] systemd[1]: Set hardware watchdog to 1min 4s.
корень @ re0: ~ # uname -a
Linux re0 4.1.15-foo-00929-g15aa5b3 #1 SMP PREEMPT Mon Oct 3 18:01:53 PDT 2016 x86_64 GNU/Linux
корень @ re0: ~ # systemctl --version
systemd 219
+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN
Это сработало, когда я скомпилировал ядро с параметром CONFIG_WATCHDOG_NOWAYOUT. Без этого параметра ядро отключает сторожевой таймер при остановке демона.
Кроме того, ошибка unregister_netdevice исчезла, когда я обновился до ядра 4.4.
Ты сбиваешь с толку программное обеспечение сторожевой таймер (пользовательский процесс / usr / sbin / сторожевой таймер вы показываете с пс) с участием оборудование сторожевой таймер, который является функцией ядра (/ dev / сторожевой таймер). Вы должны проверить конфигурацию ядра, чтобы убедиться, что она включена. Если он включен, в журнале загрузки ядра вы увидите такую строку:
[X.XXXX] Hardware watchdog '<some bsp related name>', version XXXX