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