123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #!/bin/bash
- port=$1
- echo "port: $port"
- PATH_APP=$(pwd)
- function get_port() {
- APP_PORT=$port
- }
- function get_ok() {
- APP_OK=$(curl --silent -m 3 -k https://127.0.0.1:$APP_PORT/ok)
- }
- function get_pid() {
- APP_PID=$(ps -ef | grep "python $PATH_APP/coze_bot_api.py $port" | grep -v grep | awk '{print $2}')
- }
- function kill_app() {
- if [ -n $APP_PID ]; then
- for v in $APP_PID; do
- echo $(date +%F%n%T) "开始杀死已有进程: $v"
- kill -9 $v
- done
- fi
- }
- function start_app() {
- echo $(date +%F%n%T) "开始启动coze_bot_api..."
- PYTHONIOENCODING=utf-8 nohup python $PATH_APP/coze_bot_api.py $port > $PATH_APP/nohup.out 2>&1 &
- sleep 5
- ((RETRY_COUNT++))
- echo $(tail -50 $PATH_APP/nohup.out)
- echo "启动完成..."
- echo "日志请查看 $PATH_APP/nohup.out"
- }
- function loop_detect_ok() {
- # 重试计数,防止pod一直显示成功
- RETRY_COUNT=0
- get_pid
- kill_app
- start_app
- while [ 1 ]; do
- if [ $RETRY_COUNT -gt 21 ]; then
- echo $(date +%F%n%T) "超出重启app次数限制,退出系统..."
- echo $(date +%F%n%T) "超出重启app次数限制,退出系统..." >> $PATH_APP/event.log
- exit
- fi
- # 进程不存在
- get_pid
- if [ -z $APP_PID ]; then
- echo $(date +%F%n%T) "进程不存在,第 $RETRY_COUNT 次重启app"
- echo $(date +%F%n%T) "进程不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
- kill_app
- start_app
- continue
- fi
- # 端口不存在
- get_port
- if [ -z $APP_PORT ]; then
- echo $(date +%F%n%T) "端口不存在,第 $RETRY_COUNT 次重启app"
- echo $(date +%F%n%T) "端口不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
- kill_app
- start_app
- continue
- fi
- # 心跳不存在
- get_ok
- if [ "$APP_OK"x != '"ok"'x ]; then
- echo $(date +%F%n%T) "心跳不存在,第 $RETRY_COUNT 次重启app"
- echo $(date +%F%n%T) "心跳不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
- kill_app
- start_app
- continue
- fi
- RETRY_COUNT=1
- #echo "" > $PATH_APP/nohup.out
- sleep 5
- done
- }
- #get_pid
- #kill_app
- #start_app
- loop_detect_ok &
|