#!/usr/bin/env bash set -x set -e set -o pipefail # sleep interval (seconds) : ${sleep_interval:=1} # extend_timeout_interval second(s) : ${extend_timeout_interval:=1} # number of sleep_intervals before READY=1 : ${start_intervals:=10} # number of sleep_intervals before exiting : ${stop_intervals:=10} # run intervals, number of sleep_intervals to run : ${run_intervals:=7} # We convert to usec extend_timeout_interval=$(( $extend_timeout_interval * 1000000 )) trap "{ touch /${SERVICE}.terminated; exit 1; }" SIGTERM SIGABRT rm -f /${SERVICE}.* touch /${SERVICE}.startfail systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval while [ $start_intervals -gt 0 ] do sleep $sleep_interval start_intervals=$(( $start_intervals - 1 )) systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval done systemd-notify --ready --status="Waiting for your request" touch /${SERVICE}.runtimefail rm /${SERVICE}.startfail systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval while [ $run_intervals -gt 0 ] do sleep $sleep_interval run_intervals=$(( $run_intervals - 1 )) systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval done systemd-notify STOPPING=1 touch /${SERVICE}.stopfail rm /${SERVICE}.runtimefail systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval while [ $stop_intervals -gt 0 ] do sleep $sleep_interval stop_intervals=$(( $stop_intervals - 1 )) systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval done touch /${SERVICE}.success rm /${SERVICE}.stopfail exit 0