mirror of
https://github.com/haugene/docker-transmission-openvpn.git
synced 2025-08-09 15:57:07 +02:00
72 lines
1.8 KiB
Bash
Executable File
72 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
source /etc/openvpn/utils.sh
|
|
|
|
# Handle SIGTERM
|
|
sigterm() {
|
|
echo "Received SIGTERM, exiting..."
|
|
trap - SIGTERM
|
|
kill -- -$$
|
|
}
|
|
trap sigterm SIGTERM
|
|
|
|
#Network check
|
|
# Ping uses both exit codes 1 and 2. Exit code 2 cannot be used for docker health checks,
|
|
# therefore we use this script to catch error code 2
|
|
HOST=${HEALTH_CHECK_HOST}
|
|
|
|
if [[ -z "$HOST" ]]
|
|
then
|
|
echo "Host not set! Set env 'HEALTH_CHECK_HOST'. For now, using default google.com"
|
|
HOST="google.com"
|
|
fi
|
|
|
|
# Check DNS resolution works
|
|
nslookup $HOST > /dev/null
|
|
STATUS=$?
|
|
if [[ ${STATUS} -ne 0 ]]
|
|
then
|
|
echo "DNS resolution failed"
|
|
exit 1
|
|
fi
|
|
|
|
ping -c 2 -w 10 $HOST # Get at least 2 responses and timeout after 10 seconds
|
|
STATUS=$?
|
|
if [[ ${STATUS} -ne 0 ]]
|
|
then
|
|
echo "Network is down"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Network is up"
|
|
|
|
#Service check
|
|
#Expected output is 2 for both checks, 1 for process and 1 for grep
|
|
OPENVPN=$(pgrep openvpn | wc -l )
|
|
TRANSMISSION=$(pgrep transmission | wc -l)
|
|
PROXY=$(pgrep privoxy | wc -l)
|
|
|
|
if [[ ${OPENVPN} -ne 1 ]]; then
|
|
echo "Openvpn process not running"
|
|
exit 1
|
|
fi
|
|
if [[ ${TRANSMISSION} -ne 1 ]]; then
|
|
echo "transmission-daemon process not running"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ${WEBPROXY_ENABLED} =~ [yY][eE]?[Ss]?|[tT][Rr][Uu][eE] ]]; then
|
|
if [[ ${PROXY} -eq 0 ]]; then
|
|
echo "Privoxy warning: process was stopped, restarting."
|
|
fi
|
|
proxy_ip=$(grep -oP "(?<=^listen-address).*$" /etc/privoxy/config | sed 's/ //g')
|
|
cont_ip=$(ip -j a show dev eth0 | jq -r .[].addr_info[].local)
|
|
if [[ ${proxy_ip} != ${cont_ip} ]]; then
|
|
echo "Privoxy error: container ip (${cont_ip} has changed: privoxy listening to ${proxy_ip}, restarting privoxy."
|
|
pkill privoxy || true
|
|
/opt/privoxy/start.sh
|
|
fi
|
|
fi
|
|
echo "Openvpn and transmission-daemon processes are running"
|
|
exit 0
|