GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu z uživatelského prostoru zjistit, zda je měkký hlídací pes Linuxu nakonfigurován bez cesty ven?

AHA! Po prostudování linux/watchdog.h jádra a drivers/watchdog/softdog.c , byl jsem schopen určit schopnosti softdogu ioctl() rozhraní. Při pohledu na možnosti, které oznamuje v struct watchdog_info :

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

podporují magické uzavření, které (zdá se) přepíše CONFIG_WATCHDOG_NOWAYOUT . Takže při normálním ukončení musím napsat jeden znak 'V' do /dev/watchdog pak zavřete jej a časovač přestane počítat.

Jednoduchý ioctl() na deskriptor souboru na /dev/watchdog dotazem WDIOC_GETSUPPORT umožňuje určit, zda je tento příznak nastaven. Pseudokód:

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.
}

Při práci s hardwarovými hlídacími psy možná budete chtít otevřít pomocí O_NONBLOCK takže ioctl() ne open() blokuje (proto detekuje obsazenou kartu).

Pokud WDIOF_MAGICCLOSE není podporováno, je třeba pouze předpokládat, že soft watchdog je nakonfigurován s NOWAYOUT. Nezapomeňte, stačí otevření zařízení úspěšně zahájí odpočítávání. Pokud vše, co děláte, je zjišťovat, zda podporuje magické zavírání, a to ano, pak magické zavírání . Jinak se určitě vypořádejte s tím, že teď máte běžícího hlídacího psa.

Bohužel neexistuje žádný skutečný způsob, jak to vědět jistě, aniž bych to skutečně spustil, alespoň ne ten, který bych mohl najít.


hlídací pes chrání před pevným uzamčením systému, ať už kvůli selhání softwaru nebo selhání hardwaru.

co potřebujete, je démon pro monitorování démonů (dmd). zaškrtněte 'monit'


Linux
  1. Jak odeslat e-mail s přílohou a tělem z Linuxu

  2. Jak rozeznat binární soubory od textových souborů v linuxu

  3. Jak mohu v Linuxu zjistit, který proces poslal mému procesu signál

  1. Jak mohu provést rozdělení s proměnnými v prostředí Linuxu?

  2. Jak mohu odstranit jenkins úplně z linuxu

  3. Jak mohu zjistit, zda systém Linux používá Wayland nebo X11?

  1. Jak dostanu svůj vestavěný klíč Windows 8+ z prostředí Linuxu?

  2. Jak mohu zkopírovat složku z příkazového řádku systému Linux?

  3. Jak zjistím, jakou verzi Linuxu používám?