Proxmox is using [[https://github.com/proxmox/pve-ha-manager/blob/master/src/watchdog-mux.c|watchdog-mux]].
It is using ''/dev/watchdog'' and exposes watchdog service to multiple daemons using socket:
root@pve4:~# lsof -n 2>&1 | grep watch
watchdog- 3923 root txt REG 0,26 14728 75245 /usr/sbin/watchdog-mux
watchdog- 3923 root 1u unix 0x000000006ba3be2b 0t0 40514 type=STREAM
watchdog- 3923 root 2u unix 0x000000006ba3be2b 0t0 40514 type=STREAM
watchdog- 3923 root 3w CHR 10,130 0t0 853 /dev/watchdog
watchdog- 3923 root 4u unix 0x00000000ddb50a86 0t0 40529 /run/watchdog-mux.sock type=STREAM
watchdog- 3923 root 5u a_inode 0,14 0 12480 [eventpoll]
watchdog- 3923 root 6u a_inode 0,14 0 12480 [signalfd]
watchdog- 3923 root 7u unix 0x00000000bd6f8c4d 0t0 33495 /run/watchdog-mux.sock type=STREAM
maj 24 07:09:57 pve4 watchdog-mux[3923]: Watchdog driver 'Software Watchdog', version 0
ls -l /dev/watchdog*
crw------- 1 root root 10, 130 maj 24 08:03 /dev/watchdog
crw------- 1 root root 245, 0 maj 24 08:03 /dev/watchdog0
cat /proc/devices
10 misc
245 watchdog
cat /sys/dev/char/245:0/identity
Software Watchdog
What is ''/dev/watchdog'' ?
10 char Non-serial mice, misc features
1 = /dev/psaux PS/2-style mouse port
...
130 = /dev/watchdog Watchdog timer port
====== Change watchdog ======
WATCHDOG_MODULE=sp5100_tco
systemctl stop watchdog-mux
rmmod softdog
systemctl start watchdog-mux
Verify:
journalctl -u watchdog-mux
watchdog-mux[3984]: Loading watchdog module 'sp5100_tco'
watchdog-mux[3984]: Watchdog driver 'SP5100 TCO timer', version 0