sh.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #java env
  2. #增加操作权限: chmod +x *.sh
  3. #编译.sh文件命令: sed -i 's/\r$//' *.sh
  4. #启动命令: ./sh.sh start 停止 ./sh.sh stop
  5. #shell脚本有时候调用linux的环境变量会有问题,所以这里还是把用到的java环境再设置一下
  6. #export JAVA_HOME=/usr/bin/java
  7. #名称为文件夹名称,jar 文件的父级目录
  8. #文件名 为了确保脚本通用,工程名的父级文件名
  9. APP_NAME=file
  10. SERVICE_DIR=/usr/local/jar/$APP_NAME
  11. #工程名称 idea 打包出来的工程名称
  12. SERVICE_NAME=file
  13. APP_JAR=$SERVICE_NAME\.jar
  14. #启动app的时候,将进程的pid保存在这里,方便以后杀死进程用
  15. APP_PID=$SERVICE_NAME\.pid
  16. cd $SERVICE_DIR
  17. case "$1" in
  18. start)
  19. #/dev/null 就不会有nohup.out文件了。
  20. nohup java -Xms32m -Xmx128m -Dloader.path="lib/" -jar $APP_JAR >log.file 2>&1 &
  21. #将pid写入文件
  22. echo $! > $SERVICE_DIR/$APP_PID
  23. echo "===== start $SERVICE_NAME"
  24. ;;
  25. stop)
  26. kill `cat $APP_PID`
  27. #删除掉pid文件
  28. rm -f $SERVICE_DIR/$APP_PID
  29. #查看是不是杀死进程了
  30. sleep 5
  31. #获得进程号,复制号两边不能留空格
  32. pid=`ps -ef | grep -w $SERVICE_NAME | grep -v grep | awk '{print $2}'`
  33. #判断相等两边要留空格
  34. if ["$pid" == ""];then
  35. echo "=== kill successfully "
  36. else
  37. echo "===== kill fail and try to kill -9"
  38. echo "==== the pid is $pid"
  39. kill -9 $pid
  40. fi
  41. echo "stop finished"
  42. ;;
  43. *)
  44. echo "please use start or stop 参数"
  45. ;;
  46. esac
  47. exit 0