Как убить процесс с помощью watchdog? - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно убить программу на C, если она не отвечает. Я управляю сторожевым таймером в этой программе, но могу только перезагрузить систему. Я хочу управлять сторожевым таймером, чтобы перезапустить программу, ту же C-программу, где я управляю сторожевым таймером.

Это можно сделать?

У меня есть этот код:

int interval;      /* Watchdog timeout interval (in secs) */
int bootstatus;      /* Wathdog last boot status */
char *dev;      /* Watchdog default device file */

int next_option;   /* getopt iteration var */
char kick_watchdog;   /* kick_watchdog options */

/* Init variables */
dev = WATCHDOGDEV;
interval = 10;
kick_watchdog = 0;

и внутри основного цикла у меня есть:

ioctl(fd, WDIOC_KEEPALIVE, NULL);

если мне нужно остановить это:

write(fd, "V", 1);
/* Closing the watchdog device will deactivate the watchdog. */
close(fd);
...