startJar.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. APP_NAME=changeing-dev.jar
  2. usage() {
  3. echo "case: sh run.sh [start|stop|restart|status]"
  4. echo "请类似这样执行 ./*.sh start or ./*sh restart"
  5. exit 1
  6. }
  7. # 判断当前服务是否已经启动的函数
  8. is_exist(){
  9. echo "执行 is_exist 方法"
  10. pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"
  11. if [ -z "${pid}" ]; then #判断pid是否为空
  12. echo "pid 等于null"
  13. return 1
  14. else
  15. echo "pid 不等于null"
  16. return 0
  17. fi
  18. }
  19. start(){
  20. is_exist
  21. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来
  22. echo "${APP_NAME} running. pid=${pid}"
  23. else
  24. nohup java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5526 $APP_NAME > logs.log 2>error.log & # 说明pid为空 执行java -jar 命令启动服务
  25. echo "${APP_NAME} started"
  26. fi
  27. }
  28. stop(){
  29. echo "执行 stop 方法"
  30. is_exist
  31. if [ $? -eq "0" ]; then # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死
  32. kill -9 $pid
  33. echo "${pid} stopped"
  34. else
  35. echo "${APP_NAME} not running"
  36. fi
  37. }
  38. status(){
  39. echo "执行 status 方法"
  40. is_exist
  41. if [ $? -eq "0" ]; then
  42. echo "${APP_NAME} running. Pid is ${pid}"
  43. else
  44. echo "${APP_NAME} not running"
  45. fi
  46. }
  47. # 重启命令其实就是先执行关闭命令 再执行重启命令
  48. restart(){
  49. stop
  50. start
  51. }
  52. # 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
  53. case "$1" in
  54. "start")
  55. start
  56. ;;
  57. "stop")
  58. stop
  59. ;;
  60. "status")
  61. status
  62. ;;
  63. "restart")
  64. restart
  65. ;;
  66. *)
  67. usage
  68. ;;
  69. esac