40 lines
1017 B
Bash
Executable File
40 lines
1017 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
set -o xtrace
|
|
|
|
sleep 120
|
|
|
|
echo "time out argument is "
|
|
echo $1
|
|
|
|
default_timeout="5"
|
|
|
|
# Check if the first command-line argument is provided
|
|
if [ -z "$1" ]; then
|
|
# If not provided, assign a default value
|
|
timeout=$default_timeout
|
|
else
|
|
# If provided, use the provided value
|
|
timeout="$1"
|
|
fi
|
|
|
|
echo "The timeout is: $timeout"
|
|
|
|
while true;
|
|
do
|
|
### Get backend state
|
|
echo "auto heal check"
|
|
appsmith_status="$(curl --max-time $timeout --write-out %{http_code} --silent --output /dev/null localhost:8080/api/v1/tenants/current || echo 1)"
|
|
echo "TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"` backend response "$appsmith_status
|
|
if [[ "$appsmith_status" -ne 200 ]];
|
|
then
|
|
echo "TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"` backend is unresponsive";
|
|
supervisorctl restart backend || echo true
|
|
else
|
|
echo "TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"` backend is responsive";
|
|
fi
|
|
sleep 10
|
|
done
|