36 lines
1.1 KiB
Bash
Executable File
36 lines
1.1 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
/usr/bin/influxd -config /etc/influxdb/influxdb.conf $INFLUXD_OPTS &
|
|
PID=$!
|
|
echo $PID > /var/lib/influxdb/influxd.pid
|
|
|
|
PROTOCOL="http"
|
|
BIND_ADDRESS=$(influxd config | grep -A5 "\[http\]" | grep '^ bind-address' | cut -d ' ' -f5 | tr -d '"')
|
|
HTTPS_ENABLED_FOUND=$(influxd config | grep "https-enabled = true" | cut -d ' ' -f5)
|
|
HTTPS_ENABLED=${HTTPS_ENABLED_FOUND:-"false"}
|
|
if [ $HTTPS_ENABLED = "true" ]; then
|
|
HTTPS_CERT=$(influxd config | grep "https-certificate" | cut -d ' ' -f5 | tr -d '"')
|
|
if [ ! -f "${HTTPS_CERT}" ]; then
|
|
echo "${HTTPS_CERT} not found! Exiting..."
|
|
exit 1
|
|
fi
|
|
echo "$HTTPS_CERT found"
|
|
PROTOCOL="https"
|
|
fi
|
|
HOST=${BIND_ADDRESS%%:*}
|
|
HOST=${HOST:-"localhost"}
|
|
PORT=${BIND_ADDRESS##*:}
|
|
|
|
set +e
|
|
attempts=0
|
|
url="$PROTOCOL://$HOST:$PORT/health"
|
|
result=$(curl -k -s -o /dev/null $url -w %{http_code})
|
|
while [ "${result:0:2}" != "20" ] && [ "${result:0:2}" != "40" ]; do
|
|
attempts=$(($attempts+1))
|
|
echo "InfluxDB API unavailable after $attempts attempts..."
|
|
sleep 1
|
|
result=$(curl -k -s -o /dev/null $url -w %{http_code})
|
|
done
|
|
echo "InfluxDB started"
|
|
set -e
|