blob: 7316ba08527e5a0cd0751d742c7b0026c70f591b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# Temporarily disabling watchdog while we work out IPC.
return
if {$::isLaptop} { return }
On process "watchdog" {
set ::lastPong [clock seconds]
fconfigure stdin -blocking 0 -buffering line
fileevent stdin readable {
gets stdin line
if {$line ne "pong"} { error "watchdog: Invalid return pong" }
set ::lastPong [clock seconds]
after 1000 { puts {expr {"pong"}} }
}
puts {expr {"pong"}}
every 2500 {
if {[clock seconds] - $::lastPong > 5} {
puts stderr "watchdog: Did not hear pong, restarting."
exec sudo systemctl restart folk
exit 1
}
}
vwait forever
}
|