]> git.ipfire.org Git - thirdparty/systemd.git/blob - test/TEST-16-EXTEND-TIMEOUT/extend_timeout_test_service.sh
Merge pull request #7640 from keszybz/tainting-updates
[thirdparty/systemd.git] / test / TEST-16-EXTEND-TIMEOUT / extend_timeout_test_service.sh
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