startJar.sh 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. APP_NAME=
  2. APP_DEBUG=
  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 = 'prod' ]]; then
  11. echo "prod start"
  12. APP_NAME=changeing-dev.jar
  13. APP_DEBUG=5526
  14. elif [[ $1 = 'uat' ]] ; then
  15. echo "uat start"
  16. APP_NAME=changeing-uat.jar
  17. APP_DEBUG=5520
  18. elif [[ $1 = 'devuat' ]] ; then
  19. echo "devuat 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. echo "执行 is_exist 方法"
  32. checkEnv $1
  33. pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"
  34. if [ -z "${pid}" ]; then #判断pid是否为空
  35. echo "pid 不存在"
  36. return 1
  37. else
  38. echo "pid 存在"
  39. return 0
  40. fi
  41. }
  42. start(){
  43. checkEnv $1
  44. is_exist
  45. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
  46. echo "${APP_NAME} running. pid=${pid}"
  47. else
  48. nohup java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${APP_DEBUG} $APP_NAME > logs.log 2>error.log & # 说明pid为空 执行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. stop $1
  76. start $1
  77. }
  78. # 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
  79. case "$1" in
  80. "start")
  81. start $2
  82. ;;
  83. "stop")
  84. stop $2
  85. ;;
  86. "status")
  87. status $2
  88. ;;
  89. "restart")
  90. restart $2
  91. ;;
  92. *)
  93. usage
  94. ;;
  95. esac