startJar.sh 3.4 KB

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