web/scripts/start_prod.sh
2024-01-31 06:48:20 +06:00

74 lines
2 KiB
Bash
Executable file

#!/bin/bash
if [ -z "$TELEGRAM_ADMIN_ID" ]; then echo "TELEGRAM_ADMIN_ID var is blank"; else echo "TELEGRAM_ADMIN_ID var is set to '$TELEGRAM_ADMIN_ID'"; fi
if [ -z "$TELEGRAM_BOT_TOKEN" ]; then echo "TELEGRAM_BOT_TOKEN var is blank"; else echo "TELEGRAM_BOT_TOKEN var is set to '$TELEGRAM_BOT_TOKEN'"; fi
arch=$(lscpu | grep Architecture | awk {'print $2'})
redis-cli flushall
./bin/$arch/caddy run --config CaddyfileProd &
CADDY_PID=$!
python3 -m server server &
SERVER_PID=$!
function onexit() {
echo "onexit"
sleep 25
kill $CADDY_PID
kill $SERVER_PID
}
# trap onexit EXIT
sendMessageTelegram(){
echo ${1}
local message=${1}
curl -X POST \
-H 'Content-Type: application/json' \
-d "{\"chat_id\":\"$TELEGRAM_ADMIN_ID\",\"text\":\"$message\"}" \
"https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage"
}
while true
do
sleep 5
CHECK_CADDY_PID=$(ps -A| grep $CADDY_PID |wc -l)
if [[ $CHECK_CADDY_PID -eq 0 ]]; then
sendMessageTelegram "Restarting caddy, since it's down"
./bin/$arch/caddy run --config CaddyfileProd &
CADDY_PID=$!
fi
CHECK_SERVER_PID=$(ps -A| grep $SERVER_PID |wc -l)
if [[ $CHECK_SERVER_PID -eq 0 ]]; then
sendMessageTelegram "Restarting server, since it's down"
python3 -m server server &
SERVER_PID=$!
fi
sleep 5
backend_service_url="http://localhost:7080"
backend_status_code=$(curl -m 10 -s -o /dev/null -w "%{http_code}" "$backend_service_url")
if [ "$backend_status_code" -lt 200 ]; then
sendMessageTelegram "Restarting backend, since it's down"
kill $SERVER_PID
python3 -m server server &
SERVER_PID=$!
fi
reverse_service_url="http://localhost"
reverse_status_code=$(curl -m 10 -s -o /dev/null -w "%{http_code}" "$reverse_service_url")
if [ "$reverse_status_code" -lt 308 ]; then
sendMessageTelegram "Restarting reverse, since it's down"
kill $CADDY_PID
./bin/$arch/caddy run --config CaddyfileProd &
CADDY_PID=$!
fi
sleep 65
done