#! /bin/sh -e # Written by Tollef Fog Heen # Based on code by Peter Palfrader # # Restart the given bacula director when it's idle. # # XXX: Add locking set -e if [ "$#" != 2 ];then echo >&2 "$0 " echo "Restart bacula service when port idle" exit 1 fi PORT="$1" SERVICE="$2" # chk_net # returns true (0) if there are connections to that port. chk_net() { local port="$1"; shift local con="$(ss -nt "sport = :$port" | wc -l)" if [ "$con" -gt 1 ]; then return 0 else return 1 fi } while chk_net "$PORT"; do sleep 5 done service $SERVICE restart