run.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/sh
  2. APP_NAME=age_dingding_oa.jar
  3. APP_PORT=8077
  4. APP_EVN=$2 #执行环境 sit|pro
  5. APP_ORDER=$1 #执行方法 start|stop|restart
  6. # 获取进程号
  7. APP_PID=`netstat -ntpl | grep $APP_PORT | grep LISTEN | awk '{print $7}' | awk -F "/" '{print $1}'`
  8. # 启动命令
  9. startApp(){
  10. if [ ${APP_PID} ];
  11. then
  12. echo "程序已经在运行了"
  13. else
  14. echo "执行 start 方法"
  15. nohup java -jar -Xmx3072M -Xms512M ./$APP_NAME --spring.profiles.active=$APP_EVN --server.port=$APP_PORT > logs.log 2>error.log & # 说明pid为空
  16. n=20
  17. echo "延迟 $n 秒后查询启动线程号"
  18. sleep $n
  19. runPid=$(lsof -i :$APP_PORT | awk 'NR==2 {print $2}')
  20. echo "进程号:" $runPid "端口号:" $APP_PORT
  21. echo Start Success!
  22. fi
  23. }
  24. # 停止命令
  25. stopApp(){
  26. echo "执行 stop 方法"
  27. if [ ${APP_PID} ];
  28. then
  29. echo $APP_NAME "存在,执行 stop 方法"
  30. kill -9 ${APP_PID} && echo 'Kill Process!'
  31. else
  32. echo $APP_NAME 没有运行
  33. fi
  34. }
  35. # 重启命令
  36. restartApp(){
  37. echo " 1 执行 restart 方法"
  38. stopApp
  39. APP_PID='' #将进程号置空
  40. sleep 2
  41. echo "进程号:" ${APP_PID} "端口号:" ${APP_PORT}
  42. echo " 2 执行 restart 方法"
  43. startApp
  44. }
  45. # 判断执行命令 取第一个参数
  46. case $APP_ORDER in
  47. "start")
  48. startApp
  49. ;;
  50. "stop")
  51. stopApp
  52. ;;
  53. "restart")
  54. restartApp
  55. ;;
  56. *)
  57. ;;
  58. esac