|
@@ -5,6 +5,14 @@ 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_znjd_api.py $port" | grep -v grep | awk '{print $2}')
|
|
|
}
|
|
@@ -21,12 +29,59 @@ function kill_app() {
|
|
|
function start_app() {
|
|
|
echo $(date +%F%n%T) "开始启动coze_znjd_api..."
|
|
|
PYTHONIOENCODING=utf-8 nohup python $PATH_APP/coze_znjd_api.py $port > $PATH_APP/nohup_znjd.out 2>&1 &
|
|
|
- sleep 3
|
|
|
+ sleep 5
|
|
|
+ ((RETRY_COUNT++))
|
|
|
echo $(tail -50 $PATH_APP/nohup_znjd.out)
|
|
|
echo "启动完成..."
|
|
|
echo "日志请查看 $PATH_APP/nohup_znjd.out"
|
|
|
}
|
|
|
|
|
|
-get_pid
|
|
|
-kill_app
|
|
|
-start_app
|
|
|
+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 &
|