ops/scripts/__deprecated__/executor_app_start.sh
2024-03-02 14:25:39 -05:00

145 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
Script="${0} ${*}"
function usage {
echo "Usage: ${0} [--restart] [--stop] [--once] [--sleep_sec=<num_seconds>]"
exit 1
}
for arg in "${@}"
do
case ${arg} in
--restart)
Restart=Y
shift
;;
--stop)
Stop="Y"
shift
;;
--once)
Once="Y"
shift
;;
--inst_set=*)
InstrSet="${arg#*=}"
shift
;;
--sleep_sec=*)
SleepSec="${arg#*=}"
shift
;;
-*|--*)
usage
;;
*)
;;
esac
done
if [ "${SleepSec}" == "" ]
then
SleepSec=3
fi
# -------------------- S e t t i n g s
ConfigServiceHost=cloud11.cvtt.vpn
ConfigServicePort=6789
RootDir=/home/cvtt/prod
ConfigFile="http://${ConfigServiceHost}:${ConfigServicePort}/apps/executor_app"
AdminPort="7210"
Exchange=COINBASE_AT
Name=EXECUTOR_APP
# -------------------- S e t t i n g s
LogFile="${RootDir}/logs/$(date '+%Y%m%d_%H%M%S').${Name}.log"
source ${HOME}/.pyenv/python3.10-venv/bin/activate
export PYTHONPATH=${RootDir}
Cmd="nohup"
Cmd="${Cmd} python3"
Cmd="${Cmd} ${RootDir}/cvttpy/apps/executor_app.py"
Cmd="${Cmd} --config=${ConfigFile}"
Cmd="${Cmd} --active_exchanges=${Exchange}"
Cmd="${Cmd} --admin_port=${AdminPort}"
Cmd="${Cmd} --log_level=INFO"
Cmd="${Cmd} --log_file=${LogFile}"
Cmd="${Cmd} &"
function start_it {
echo ${Cmd}
eval ${Cmd} &
sleep 10
}
function check_it {
if !(timeout 3 curl -s localhost:${AdminPort}/ping > /dev/null)
then
echo "${Script} doesn't respond. restarting..."
pids=$(ps -ef | grep "admin_port=${AdminPort}" | grep -v grep | tr -s ' ' |cut -d' ' -f2)
echo pids=${pids}
if [ "${pids}" != "" ]
then
kill -9 ${pids}
fi
start_it
fi
}
function kill_it {
pids=$(ps -ef |grep $(basename ${0}) |grep -v ${$} |grep -v grep |tr -s ' ' |cut -d' ' -f2)
if [ "${pids}" != "" ]
then
echo "Killing ${pids} ..."
kill -9 ${pids}
fi
while (timeout 3 curl -s localhost:${AdminPort}/ping > /dev/null)
do
echo "Shutting down localhost:${AdminPort}/shutdown ..."
timeout 5 curl -s localhost:${AdminPort}/shutdown
sleep 3
pids=$(ps -ef | grep "admin_port=${AdminPort}" | grep -v grep | tr -s ' ' |cut -d' ' -f2)
echo pids=${pids}
if [ "${pids}" != "" ]
then
kill -9 ${pids}
fi
done
}
if [ "${Stop}" == "Y" ] ; then
kill_it
exit 0
fi
if [ "${Once}" == "Y" ] ; then
start_it
exit 0
fi
if [ "${Restart}" == "Y" ]
then
kill_it
fi
start_it
while true
do
check_it
echo "${Script} is checked" | /usr/bin/ts '[%Y-%m-%d %H:%M:%S]'
sleep ${SleepSec}
done