]>
Commit | Line | Data |
---|---|---|
ff12a795 | 1 | #!/usr/bin/env bash |
22d3cfe5 | 2 | # SPDX-License-Identifier: LGPL-2.1-or-later |
1c3f490f | 3 | set -eux |
a327431b DB |
4 | set -o pipefail |
5 | ||
6 | # sleep interval (seconds) | |
1c3f490f | 7 | sleep_interval="${sleep_interval:-1}" |
a327431b | 8 | # extend_timeout_interval second(s) |
1c3f490f | 9 | extend_timeout_interval="${extend_timeout_interval:-1}" |
a327431b | 10 | # number of sleep_intervals before READY=1 |
1c3f490f | 11 | start_intervals="${start_intervals:-10}" |
a327431b | 12 | # number of sleep_intervals before exiting |
1c3f490f | 13 | stop_intervals="${stop_intervals:-10}" |
a327431b | 14 | # run intervals, number of sleep_intervals to run |
1c3f490f | 15 | run_intervals="${run_intervals:-7}" |
a327431b DB |
16 | |
17 | # We convert to usec | |
1c3f490f | 18 | extend_timeout_interval=$((extend_timeout_interval * 1000000)) |
a327431b | 19 | |
1c3f490f FS |
20 | # shellcheck disable=SC2064 |
21 | trap "{ touch /${SERVICE}.terminated; exit 1; }" SIGTERM SIGABRT | |
a327431b | 22 | |
1c3f490f FS |
23 | rm -f "/${SERVICE}".* |
24 | touch "/${SERVICE}.startfail" | |
a327431b | 25 | |
1c3f490f FS |
26 | systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval" |
27 | while [[ $start_intervals -gt 0 ]] | |
a327431b | 28 | do |
1c3f490f FS |
29 | sleep "$sleep_interval" |
30 | start_intervals=$((start_intervals - 1)) | |
31 | systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval" | |
a327431b DB |
32 | done |
33 | ||
34 | systemd-notify --ready --status="Waiting for your request" | |
35 | ||
1c3f490f FS |
36 | touch "/${SERVICE}.runtimefail" |
37 | rm "/${SERVICE}.startfail" | |
a327431b | 38 | |
1c3f490f FS |
39 | systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval" |
40 | while [[ $run_intervals -gt 0 ]] | |
a327431b | 41 | do |
1c3f490f FS |
42 | sleep "$sleep_interval" |
43 | run_intervals=$((run_intervals - 1)) | |
44 | systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval" | |
a327431b DB |
45 | done |
46 | ||
47 | systemd-notify STOPPING=1 | |
48 | ||
1c3f490f FS |
49 | touch "/${SERVICE}.stopfail" |
50 | rm "/${SERVICE}.runtimefail" | |
a327431b | 51 | |
1c3f490f FS |
52 | systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval" |
53 | while [[ $stop_intervals -gt 0 ]] | |
a327431b | 54 | do |
1c3f490f FS |
55 | sleep "$sleep_interval" |
56 | stop_intervals=$((stop_intervals - 1)) | |
57 | systemd-notify EXTEND_TIMEOUT_USEC="$extend_timeout_interval" | |
a327431b DB |
58 | done |
59 | ||
1c3f490f FS |
60 | touch "/${SERVICE}.success" |
61 | rm "/${SERVICE}.stopfail" | |
a327431b DB |
62 | |
63 | exit 0 |