File tree 5 files changed +10
-18
lines changed
5 files changed +10
-18
lines changed Original file line number Diff line number Diff line change 5
5
6
6
OPENVPN_CONFIG=${1:-/ client/ config.ovpn}
7
7
8
- # Run in background, rely on bash for job management
8
+ # Run in background using bash job management, setup trap to clean-up
9
+ trap " { jobs -p | xargs -r kill; wait; }" EXIT
9
10
openvpn --config " $OPENVPN_CONFIG " --management 127.0.0.1 9999 &
10
11
11
12
# Spin waiting for interface to exist signifying connection
31
32
32
33
if [ $i -ge $timeout ]; then
33
34
echo " Error starting OpenVPN, i=$i , exiting."
34
- exit 2;
35
+ exit 2
35
36
fi
36
37
37
- # The show is over.
38
- kill %1
Original file line number Diff line number Diff line change @@ -22,8 +22,9 @@ docker run -v $OVPN_DATA:/etc/openvpn --rm $IMG ovpn_getclient $CLIENT | tee $CL
22
22
docker run -v $OVPN_DATA :/etc/openvpn --rm $IMG ovpn_listclients | grep $CLIENT
23
23
24
24
#
25
- # Fire up the server
25
+ # Fire up the server and setup a trap to always clean it up
26
26
#
27
+ trap " { jobs -p | xargs -r kill; wait; }" EXIT
27
28
docker run --name " ovpn-test" -v $OVPN_DATA :/etc/openvpn --rm -p 1194:1194/udp --privileged $IMG &
28
29
29
30
# for i in $(seq 10); do
@@ -39,10 +40,6 @@ docker run --name "ovpn-test" -v $OVPN_DATA:/etc/openvpn --rm -p 1194:1194/udp -
39
40
#
40
41
docker run --rm --net=host --privileged --volume $CLIENT_DIR :/client $IMG /client/wait-for-connect.sh
41
42
42
- #
43
- # Client either connected or timed out, kill server
44
- #
45
- kill %1
46
43
47
44
#
48
45
# Celebrate
Original file line number Diff line number Diff line change @@ -35,7 +35,8 @@ docker run -v $OVPN_DATA:/etc/openvpn --rm $IMG ovpn_listclients | grep $CLIENT_
35
35
# Fire up the server
36
36
#
37
37
38
- # run in shell bg to get logs
38
+ # Run in shell bg to get logs, setup trap to clean-up
39
+ trap " { jobs -p | xargs -r kill; wait; }" EXIT
39
40
docker run --name " ovpn-test-udp" -v $OVPN_DATA :/etc/openvpn --rm -p 1194:1194/udp --privileged $IMG &
40
41
docker run --name " ovpn-test-tcp" -v $OVPN_DATA :/etc/openvpn --rm -p 443:1194/tcp --privileged $IMG ovpn_run --proto tcp &
41
42
@@ -47,10 +48,6 @@ docker run --name "ovpn-test-tcp" -v $OVPN_DATA:/etc/openvpn --rm -p 443:1194/tc
47
48
docker run --rm --net=host --privileged --volume $CLIENT_DIR :/client $IMG /client/wait-for-connect.sh
48
49
docker run --rm --net=host --privileged --volume $CLIENT_DIR :/client $IMG /client/wait-for-connect.sh " /client/config-tcp.ovpn"
49
50
50
- #
51
- # Client either connected or timed out, kill server
52
- #
53
- kill %1 %2
54
51
55
52
#
56
53
# Celebrate
Original file line number Diff line number Diff line change @@ -49,6 +49,7 @@ grep 'reneg-sec 0' $CLIENT_DIR/config.ovpn || abort 'reneg-sec not set to 0 in c
49
49
#
50
50
# Fire up the server
51
51
#
52
+ trap " { jobs -p | xargs -r kill; wait; }" EXIT
52
53
docker run --name " ovpn-test" -v $OVPN_DATA :/etc/openvpn --rm -p 1194:1194/udp --privileged $IMG &
53
54
54
55
# for i in $(seq 10); do
@@ -64,10 +65,6 @@ docker run --name "ovpn-test" -v $OVPN_DATA:/etc/openvpn --rm -p 1194:1194/udp -
64
65
#
65
66
docker run --rm --net=host --privileged --volume $CLIENT_DIR :/client $IMG /client/wait-for-connect.sh
66
67
67
- #
68
- # Client either connected or timed out, kill server
69
- #
70
- kill %1
71
68
72
69
#
73
70
# Celebrate
Original file line number Diff line number Diff line change @@ -23,6 +23,8 @@ function finish {
23
23
# Stop the server and clean up
24
24
docker rm -f $NAME
25
25
docker volume rm $OVPN_DATA
26
+ jobs -p | xargs -r kill
27
+ wait
26
28
}
27
29
trap finish EXIT
28
30
You can’t perform that action at this time.
0 commit comments