#!/usr/bin/env sh CMD="$1" FILE="$2" #LOG="$(mktemp /tmp/${CMD}log.XXXXXX)" getChangeTime () { stat -c '%Y' "$FILE" } start () { $CMD $FILE & #2>>$LOG PSID=$! CHANGETIME="$(getChangeTime)" echo "Started $CMD $FILE at $(TZ=UTC date)" } start while true; do NEWCHANGETIME="$(getChangeTime)" if [ $NEWCHANGETIME -ne $CHANGETIME ]; then echo "File has changed!" kill $PSID start fi; sleep 1 done;