Значение записи «V» в файл сторожевого устройства

Что это значит, когда мы делаем echo V > /dev/watchdog? В одной статье говорилось, что это может предотвратить случайную остановку сторожевого таймера. Мне не ясна эта цель.


person nathan    schedule 29.07.2016    source источник


Ответы (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.
person whh4000    schedule 01.08.2016
comment
Большое спасибо. Я прочитал прикрепленную ссылку. Что произойдет, если мы просто напишем V, не закрывая файл устройства? - person nathan; 03.08.2016

Это задокументировано (в некоторой степени) в Documentation/watchdog/watchdog-api.txt. Однако я думаю, что этот документ частично устарел с момента объединения драйверов сторожевого таймера. Запись любого символа на сторожевое устройство позволяет сторожевому устройству узнать, что система работает.

Если ни один процесс не записывает в /dev/watchdog, то драйвер ядра не пингует аппаратный сторожевой таймер, и система перезагрузится по истечении времени ожидания сторожевого таймера. Это проблема, если вы хотите выполнить некоторое обслуживание и предпочитаете убедиться, что обслуживание завершено без риска перезагрузки, даже если это займет много времени. Если вы напишете символ V, то аппаратный сторожевой таймер будет отключен, когда процесс записи закроет /dev/watchdog, и снова включится, когда /dev/watchdog снова откроется. После этого вы можете заниматься техническим обслуживанием столько, сколько захотите.

person Gilles 'SO- stop being evil'    schedule 30.07.2016
comment
Итак, если мы напишем 1, а затем закроем /dev/watchdog, аппаратный сторожевой таймер не будет отключен? или только когда мы пишем V , произойдет отключение? - person nathan; 31.07.2016
comment
Я просто подумал, что пока мы закроем /dev/watchdog, аппаратный watchdao будет включен. Разве это не так? - person nathan; 31.07.2016
comment
@user3529352 user3529352 Верно, если только вы не напишете V непосредственно перед закрытием. - person Gilles 'SO- stop being evil'; 31.07.2016
comment
Я немного смущен . В чем реальная разница между 1. echo V, затем закрыть dev/watchdog. и просто закройте файл устройства. Я новичок в линуксе. Спасибо большое - person nathan; 31.07.2016