Что это значит, когда мы делаем echo V > /dev/watchdog
? В одной статье говорилось, что это может предотвратить случайную остановку сторожевого таймера. Мне не ясна эта цель.
Значение записи «V» в файл сторожевого устройства
Ответы (2)
Согласно документации ядра это называется функцией «Волшебное закрытие» https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt
Magic Close feature:
If a driver supports "Magic Close", the driver will not disable the
watchdog unless a specific magic character 'V' has been sent to
/dev/watchdog just before closing the file. If the userspace daemon
closes the file without sending this special character, the driver
will assume that the daemon (and userspace in general) died, and will
stop pinging the watchdog without disabling it first. This will then
cause a reboot if the watchdog is not re-opened in sufficient time.
Это задокументировано (в некоторой степени) в Documentation/watchdog/watchdog-api.txt
. Однако я думаю, что этот документ частично устарел с момента объединения драйверов сторожевого таймера. Запись любого символа на сторожевое устройство позволяет сторожевому устройству узнать, что система работает.
Если ни один процесс не записывает в /dev/watchdog
, то драйвер ядра не пингует аппаратный сторожевой таймер, и система перезагрузится по истечении времени ожидания сторожевого таймера. Это проблема, если вы хотите выполнить некоторое обслуживание и предпочитаете убедиться, что обслуживание завершено без риска перезагрузки, даже если это займет много времени. Если вы напишете символ V
, то аппаратный сторожевой таймер будет отключен, когда процесс записи закроет /dev/watchdog
, и снова включится, когда /dev/watchdog
снова откроется. После этого вы можете заниматься техническим обслуживанием столько, сколько захотите.
V
непосредственно перед закрытием.
- person Gilles 'SO- stop being evil'; 31.07.2016