mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-26 10:03:40 +03:00
63 lines
1.6 KiB
Bash
Executable File
63 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
# sleep interval (seconds)
|
|
sleep_interval="${sleep_interval:-1}"
|
|
# extend_timeout_interval second(s)
|
|
extend_timeout_interval="${extend_timeout_interval:-1}"
|
|
# number of sleep_intervals before READY=1
|
|
start_intervals="${start_intervals:-10}"
|
|
# number of sleep_intervals before exiting
|
|
stop_intervals="${stop_intervals:-10}"
|
|
# run intervals, number of sleep_intervals to run
|
|
run_intervals="${run_intervals:-7}"
|
|
|
|
# We convert to usec
|
|
extend_timeout_interval=$((extend_timeout_interval * 1000000))
|
|
|
|
# shellcheck disable=SC2064
|
|
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
|