Использование
System.ComponentModel.DataAnnotations;
Вы можете просто поместить этот атрибут в свою модель:
[DataType("decimal(18,5)")]
АГА! После рытья через ядро 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. Помните, всего открытие , устройство успешно запускает обратный отсчет. Если все, что Вы делаете, зондирует, чтобы видеть, поддерживает ли это волшебство близко, и это делает, то волшебство закрывает его . Иначе обязательно имейте дело с тем, что у Вас теперь есть рабочий сторожевой таймер.
, К сожалению, нет никакого реального способа знать наверняка, на самом деле не запуская его, по крайней мере, не, что я мог найти.
сторожевой таймер принимает меры против твердой блокировки система, или из-за катастрофического отказа программного обеспечения или из-за отказа оборудования.
то, в чем Вы нуждаетесь, является демоном, контролирующим демона (dmd). проверьте 'monit'
Я думаю, что сторожевые драйверы устройств действительно предназначаются для использования на встроенных платформах (или по крайней мере хорошо управляемые), где разработчики будут иметь контроль, которого используется ядро.
Это могло считаться контролем, но я думаю, что это не.
Еще одна вещь, которую Вы могли попробовать, если бы сторожевой таймер был создан как загружаемый модуль, разгрузив ее, по-видимому, прервет завершение работы?