startJar.sh 1.8 KB

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