#!/bin/sh -efu set -efu rtprio -t "-$$" egrep -qi '(cpsw.*watchdog|firmware.*failure|could.*not.*firmware)' /var/log/all.log && exit 1 ping_defgw() { local route_args ping_args case "$1" in inet) route_args=' -inet'; ping_args=' -c 3 -t 3 -o -q' ;; inet6) route_args=' -inet6'; ping_args='6 -c 3 -o -q' ;; esac route -n get$route_args default \ | awk '$1 == "gateway:" { print $2 }' \ | xargs ping$ping_args > /dev/null 2>&1 } ping_defgw inet6 || ping_defgw inet || exit 1 for part in `pgrep -lf 'watchdog alivetime='` do case "$part" in alivetime=*) alivetime="`echo \"${part##*=}\" | tr -c -d 0-9`" [ "$alivetime" ] && [ "$((`date +%s` - $alivetime))" -le 10 ] && exit 0 ;; esac done exit 1