Назад | Перейти на главную страницу

Таймер выключения systemd не работает

Из 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