startJar.sh 3.8 KB

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