Add IGNORE_EVENTS_WHILE_COMMAND_IS_RUNNING feature

This commit is contained in:
David Coppit
2015-06-24 07:28:37 -04:00
parent e1300c6c52
commit e095a31553
2 changed files with 26 additions and 1 deletions

View File

@@ -154,6 +154,23 @@ function wait_for_minimum_period {
#----------------------------------------------------------------------------------------------------------------------- #-----------------------------------------------------------------------------------------------------------------------
function wait_for_command_to_complete {
PID=$1
while ps -p $PID > /dev/null
do
sleep .1
if [[ "$IGNORE_EVENTS_WHILE_COMMAND_IS_RUNNING" == "1" ]]
then
# -t 0 didn't work for me. Seemed to return success with no RECORD
while read -t 0.001 RECORD; do :; done
fi
done
}
#-----------------------------------------------------------------------------------------------------------------------
echo "$(ts) Starting monitor for $CONFIG_FILE" echo "$(ts) Starting monitor for $CONFIG_FILE"
tr -d '\r' < $CONFIG_FILE > /tmp/$NAME.conf tr -d '\r' < $CONFIG_FILE > /tmp/$NAME.conf
@@ -193,7 +210,10 @@ do
wait_for_minimum_period $last_run_time wait_for_minimum_period $last_run_time
echo "$(ts) Running command" echo "$(ts) Running command"
$COMMAND $COMMAND &
PID=$!
last_run_time=$(date +"%s") last_run_time=$(date +"%s")
wait_for_command_to_complete $PID
fi fi
done <$pipe done <$pipe

View File

@@ -26,3 +26,8 @@ MIN_PERIOD=10:00
# In this example, we call a SageTV remote API to trigger a rescan of the imported media library. The command assumes # In this example, we call a SageTV remote API to trigger a rescan of the imported media library. The command assumes
# that we've installed the plugin called "sagex-services - SageTV Remote API Services". # that we've installed the plugin called "sagex-services - SageTV Remote API Services".
COMMAND="wget -nv -O /dev/null --auth-no-challenge http://sage:frey@192.168.1.102:8080/sagex/api?c=RunLibraryImportScan&1=" COMMAND="wget -nv -O /dev/null --auth-no-challenge http://sage:frey@192.168.1.102:8080/sagex/api?c=RunLibraryImportScan&1="
# This is a very good idea if your command modifies the WATCH_DIR in any way. You can easily trigger yourself because
# most programs don't worry about checking the current state before making a change. e.g. chmod will set the mode of a
# file even if it already has that mode.
IGNORE_EVENTS_WHILE_COMMAND_IS_RUNNING=1