|
@@ -0,0 +1,87 @@
|
|
|
+#!/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_test.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_test..."
|
|
|
+ PYTHONIOENCODING=utf-8 nohup python $PATH_APP/coze_bot_api_test.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 &
|