定时监控服务并拉起

阳光穿透心脏的1/2处 2022-10-10 01:55 198阅读 0赞

联调阶段,代码改动较为频繁。留给端同学使用的环境经常忘记在下班时放到后台运行,路上又不能随时拿起电脑启动,因此写了一个小脚本,在服务关闭的时候,定时拉起。

  1. #!/usr/bin/bash
  2. SERVICE="xxx.xxx.xxx.xxx port"
  3. GO_AWAY_TIME=11 # 0-23
  4. WORKSPACE="/work/space/path"
  5. RESTART_COMMAND="go run main.go"
  6. REVIVE_FLAG=1 # 是否强制杀死旧进程并拉起新进程 0不拉起 1 拉起
  7. # 时段校验
  8. function valid_time() {
  9. hour=`date '+%H'`
  10. if [ $hour -ge $GO_AWAY_TIME ]
  11. then
  12. #echo $hour "valid"
  13. return 1
  14. else
  15. #echo $hour "ignored"
  16. return 0
  17. fi
  18. return 0
  19. }
  20. # 检测服务是否活着
  21. nc -w 1 -z $SERVICE
  22. if [ $? -eq 0 ]
  23. then
  24. echo telnet $SERVICE ok
  25. # if [ $REVIVE_FLAG -eq 1]
  26. # then
  27. # PORT=`echo $SERVICE | awk '{print $2}'`
  28. # lsof -i:$PORT || echo PLACEHOLDER | tail -2|head -1 | awk '{if($2 == "")print 0; if($2 != "")print $2}' | xargs kill -9
  29. # fi
  30. sleep 1
  31. else
  32. echo telnet $SERVICE fail
  33. valid_time;
  34. if [ $? -eq 1 ]
  35. then
  36. cd $WORKSPACE && $RESTART_COMMAND
  37. echo telnet $SERVICE restarted
  38. fi
  39. fi

发表评论

表情:
评论列表 (有 0 条评论,198人围观)

还没有评论,来说两句吧...

相关阅读