start.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/sh
  2. # ./start.sh start 启动 stop 停止 restart 重启 status 状态
  3. AppName=lingyue-starter.jar
  4. # JVM参数
  5. JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError"
  6. APP_HOME=$(cd "$(dirname "$0")" && pwd)
  7. LOG_PATH=$APP_HOME/logs/$AppName.log
  8. if [ "$1" = "" ]; then
  9. echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
  10. exit 1
  11. fi
  12. function start()
  13. {
  14. PID=$(ps -ef | grep java | grep $AppName | grep -v grep | awk '{print $2}')
  15. if [ x"$PID" != x"" ]; then
  16. echo "$AppName is running... (PID: $PID)"
  17. else
  18. mkdir -p $APP_HOME/logs
  19. nohup java $JVM_OPTS -jar $APP_HOME/lingyue-starter/target/$AppName > $LOG_PATH 2>&1 &
  20. echo "Start $AppName success... (PID: $!)"
  21. echo "Log: $LOG_PATH"
  22. fi
  23. }
  24. function stop()
  25. {
  26. echo "Stop $AppName"
  27. PID=""
  28. query(){
  29. PID=$(ps -ef | grep java | grep $AppName | grep -v grep | awk '{print $2}')
  30. }
  31. query
  32. if [ x"$PID" != x"" ]; then
  33. kill -TERM $PID
  34. echo "$AppName (pid:$PID) exiting..."
  35. while [ x"$PID" != x"" ]
  36. do
  37. sleep 1
  38. query
  39. done
  40. echo "$AppName exited."
  41. else
  42. echo "$AppName already stopped."
  43. fi
  44. }
  45. function restart()
  46. {
  47. stop
  48. sleep 2
  49. start
  50. }
  51. function status()
  52. {
  53. PID=$(ps -ef | grep java | grep $AppName | grep -v grep | wc -l)
  54. if [ $PID != 0 ]; then
  55. echo "$AppName is running..."
  56. else
  57. echo "$AppName is not running..."
  58. fi
  59. }
  60. case $1 in
  61. start)
  62. start;;
  63. stop)
  64. stop;;
  65. restart)
  66. restart;;
  67. status)
  68. status;;
  69. *)
  70. echo "Usage: $0 {start|stop|restart|status}"
  71. esac