Сторожевой таймер программного обеспечения Linux

Использование

System.ComponentModel.DataAnnotations;

Вы можете просто поместить этот атрибут в свою модель:

[DataType("decimal(18,5)")]
14
задан Tim Post 18 February 2009 в 04:27
поделиться

3 ответа

АГА! После рытья через ядро linux/watchdog.h и drivers/watchdog/softdog.c, я смог определить возможности интерфейса softdog ioctl(). Рассмотрение возможностей, о которых это объявляет в struct watchdog_info:

static struct watchdog_info ident = {
                .options =              WDIOF_SETTIMEOUT |
                                        WDIOF_KEEPALIVEPING |
                                        WDIOF_MAGICCLOSE,
                .firmware_version =     0,
                .identity =             "Software Watchdog",
        };

Это делает , поддерживают волшебство близко что (кажется), переопределение CONFIG_WATCHDOG_NOWAYOUT. Так, при завершении обычно, я должен записать единственный символ 'V' в /dev/watchdog затем близкий это, и таймер прекратит рассчитывать.

А, простой ioctl() на дескрипторе файла к /dev/watchdog, выяснение WDIOC_GETSUPPORT позволяет определять, установлен ли этот флаг. Псевдо код:

int fd;
struct watchdog_info info;

fd = open("/dev/watchdog", O_WRONLY);
if (fd == -1) {
   perror("open");
   // abort, timer did not start - no additional concerns
}

if (ioctl(fd, WDIOC_GETSUPPORT, &info)) {
    perror("ioctl");
    // abort, but you probably started the timer! See below.
}

if (WDIOF_MAGICCLOSE & info.options) {
   printf("Watchdog supports magic close char\n");
   // You have started the timer here! Handle that appropriately.
}

При работе с аппаратными сторожевыми таймерами, Вы могли бы хотеть открыться [1 111] так ioctl() не open() блоки (следовательно обнаруживающий занятую карту).

, Если WDIOF_MAGICCLOSE не поддерживается, нужно просто предположить, что мягкий сторожевой таймер настроен с NOWAYOUT. Помните, всего открытие , устройство успешно запускает обратный отсчет. Если все, что Вы делаете, зондирует, чтобы видеть, поддерживает ли это волшебство близко, и это делает, то волшебство закрывает его . Иначе обязательно имейте дело с тем, что у Вас теперь есть рабочий сторожевой таймер.

, К сожалению, нет никакого реального способа знать наверняка, на самом деле не запуская его, по крайней мере, не, что я мог найти.

18
ответ дан 1 December 2019 в 13:22
поделиться

сторожевой таймер принимает меры против твердой блокировки система, или из-за катастрофического отказа программного обеспечения или из-за отказа оборудования.

то, в чем Вы нуждаетесь, является демоном, контролирующим демона (dmd). проверьте 'monit'

3
ответ дан 1 December 2019 в 13:22
поделиться

Я думаю, что сторожевые драйверы устройств действительно предназначаются для использования на встроенных платформах (или по крайней мере хорошо управляемые), где разработчики будут иметь контроль, которого используется ядро.

Это могло считаться контролем, но я думаю, что это не.

Еще одна вещь, которую Вы могли попробовать, если бы сторожевой таймер был создан как загружаемый модуль, разгрузив ее, по-видимому, прервет завершение работы?

-2
ответ дан 1 December 2019 в 13:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: