startJar.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. 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 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${APP_DEBUG} $APP_NAME > logs.log 2>error.log & # 说明pid为空 执行java -jar 命令启动服务
  48. echo "${APP_NAME} started启动"
  49. fi
  50. }
  51. stop(){
  52. echo "执行 stop 方法"
  53. checkEnv $1
  54. is_exist
  55. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
  56. kill -9 $pid
  57. echo "${pid} stopped-停止"
  58. else
  59. echo "${APP_NAME} 没有运行"
  60. fi
  61. }
  62. status(){
  63. echo "执行 status 方法"
  64. checkEnv $1
  65. is_exist
  66. if [ $? -eq "0" ]; then
  67. echo "${APP_NAME} running-启动. Pid is ${pid}"
  68. else
  69. echo "${APP_NAME} 没有运行"
  70. fi
  71. }
  72. # 重启命令其实就是先执行关闭命令 再执行重启命令
  73. restart(){
  74. echo "执行 restart 方法"
  75. checkEnv $1
  76. is_exist
  77. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
  78. kill -9 $pid
  79. echo "${pid} stopped-停止"
  80. else
  81. echo "${APP_NAME} 没有运行"
  82. fi
  83. sleep 5
  84. is_exist
  85. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
  86. echo "${APP_NAME} running. pid=${pid}"
  87. else
  88. 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 命令启动服务
  89. echo "${APP_NAME} started启动"
  90. fi
  91. }
  92. # 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
  93. case "$1" in
  94. "start")
  95. start $2
  96. ;;
  97. "stop")
  98. stop $2
  99. ;;
  100. "status")
  101. status $2
  102. ;;
  103. "restart")
  104. restart $2
  105. ;;
  106. *)
  107. usage
  108. ;;
  109. esac