29 lines
409 B
Bash
29 lines
409 B
Bash
reset-elapsed() {
|
|
(( last_cmd_at = SECONDS ))
|
|
}
|
|
|
|
ping-timer() {
|
|
kill -USR1 "$reaper_pid" 2>/dev/null
|
|
}
|
|
|
|
kill-reaper() {
|
|
kill -KILL "$reaper_pid"
|
|
}
|
|
|
|
{
|
|
trap reset-elapsed USR1
|
|
last_cmd_at=0
|
|
|
|
while sleep 1; do
|
|
(( elapsed = SECONDS - last_cmd_at ))
|
|
|
|
if (( elapsed > 600 )); then
|
|
kill -KILL "$$"
|
|
exit
|
|
fi
|
|
done
|
|
} &
|
|
|
|
reaper_pid=$! prompt_cmds+=(ping-timer)
|
|
trap kill-reaper EXIT
|