startJar.sh 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. APP_NAME=720yun_fd_manage.jar # 应用名称
  2. APP_PORT=8001 #应用端口
  3. date=`date`
  4. usage() {
  5. echo "case: sh run.sh [start|stop|restart|status|checkServer]"
  6. echo "请类似这样执行 ./*.sh start pro or ./*sh restart pro"
  7. exit 1
  8. }
  9. checkEnv(){
  10. if [ -z "${APP_NAME}" ]; then #判断pid是否为空
  11. if [[ $1 = 'pro' ]]; then
  12. echo "pro config"
  13. APP_NAME=720yun_fd_manage_pro.jar
  14. elif [[ $1 = 'sit' ]] ; then
  15. echo "sit config"
  16. APP_NAME=720yun_fd_manage_sit.jar
  17. elif [[ $1 = 'devuat' ]] ; then
  18. echo "devuat config"
  19. APP_NAME=720yun_fd_manage_devuat.jar
  20. else
  21. echo "没有设置环境"
  22. fi
  23. # else
  24. # echo "已经设置-${APP_NAME}-${APP_DEBUG}"
  25. fi
  26. }
  27. # 判断当前服务是否已经启动的函数
  28. is_exist(){
  29. checkEnv $1
  30. pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"
  31. if [ -z "${pid}" ]; then #判断pid是否为空
  32. echo "pid 不存在"
  33. return 1
  34. else
  35. echo "pid 存在"
  36. return 0
  37. fi
  38. }
  39. start(){
  40. checkEnv $1
  41. is_exist
  42. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
  43. echo "${APP_NAME} running. pid=${pid}"
  44. else
  45. nohup java -jar -Xmx3072M -Xms512M ./$APP_NAME --spring.profiles.active=$1 --server.port=$APP_PORT > logs.log 2>error.log & # 说明pid为空
  46. # 执行java -jar 命令启动服务
  47. echo "${APP_NAME} started启动"
  48. fi
  49. }
  50. stop(){
  51. echo "执行 stop 方法"
  52. checkEnv $1
  53. is_exist
  54. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
  55. kill -9 $pid
  56. echo "${pid} stopped-停止"
  57. else
  58. echo "${APP_NAME} 没有运行"
  59. fi
  60. }
  61. status(){
  62. echo "执行 status 方法"
  63. checkEnv $1
  64. is_exist
  65. if [ $? -eq "0" ]; then
  66. echo "${APP_NAME} running-启动. Pid is ${pid}"
  67. else
  68. echo "${APP_NAME} 没有运行"
  69. fi
  70. }
  71. checkServer(){
  72. echo "执行 status 方法"
  73. checkEnv $1
  74. is_exist
  75. if [ $? -eq "0" ]; then
  76. echo "${APP_NAME} running-正在运行. Pid is ${pid}"
  77. echo `date +%Y-%m-%d` `date +%H:%M:%S` ${APP_NAME} "running-正在运行. Pid is ${pid}" >> check.log
  78. exit 0
  79. else
  80. echo "${APP_NAME} 没有运行,即将重启"
  81. echo `date +%Y-%m-%d` `date +%H:%M:%S` ${APP_NAME} "没有运行,即将重启" >> check.log
  82. restart $1
  83. fi
  84. }
  85. # 重启命令其实就是先执行关闭命令 再执行重启命令
  86. restart(){
  87. echo "执行 restart 方法"
  88. checkEnv $1
  89. is_exist
  90. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
  91. kill -9 $pid
  92. echo "${pid} stopped-停止"
  93. else
  94. echo "${APP_NAME} 没有运行"
  95. fi
  96. sleep 5
  97. is_exist
  98. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
  99. echo "${APP_NAME} running. pid=${pid}"
  100. else
  101. nohup java -jar -Xmx3072M -Xms512M ./$APP_NAME --spring.profiles.active=$1 --server.port=$APP_PORT > logs.log 2>error.log & # 说明pid为空 执行java -jar 命令启动服务
  102. echo "${APP_NAME} started启动"
  103. fi
  104. }
  105. # 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
  106. case "$1" in
  107. "start")
  108. start $2
  109. ;;
  110. "stop")
  111. stop $2
  112. ;;
  113. "status")
  114. status $2
  115. ;;
  116. "restart")
  117. restart $2
  118. ;;
  119. "checkServer")
  120. checkServer $2
  121. ;;
  122. *)
  123. usage
  124. ;;
  125. esac