start.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/sh
  2. SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
  3. APP_HOME="$(dirname "$SCRIPT_DIR")"
  4. . "$APP_HOME/conf/setenv.sh"
  5. start_app() {
  6. APP_NAME="$1"
  7. APP_VERSION_VAR="APP_VER_$(echo "$APP_NAME" | tr '-' '_' | tr '[:lower:]' '[:upper:]')"
  8. case "$APP_VERSION_VAR" in
  9. APP_VER_ROTA_LOCAL_CLIENT) APP_VERSION="$APP_VER_ROTA_LOCAL_CLIENT" ;;
  10. APP_VER_ROTA_LOCAL_SERVER) APP_VERSION="$APP_VER_ROTA_LOCAL_SERVER" ;;
  11. APP_VER_MOCT_LOCAL_CLIENT) APP_VERSION="$APP_VER_MOCT_LOCAL_CLIENT" ;;
  12. *) echo "[ERROR] Unknown version variable: $APP_VERSION_VAR"; exit 1 ;;
  13. esac
  14. JAR_FILE="$APPS_DIR/$APP_NAME-$APP_VERSION.jar"
  15. PID_FILE="$BIN_DIR/conf/$APP_NAME.pid"
  16. if [ -f "$PID_FILE" ]; then
  17. PID=$(cat "$PID_FILE")
  18. if ps -p "$PID" > /dev/null 2>&1; then
  19. echo "[WARN] $APP_NAME is already running (PID: $PID)"
  20. return
  21. else
  22. echo "[INFO] Application PID file found. Cleaning: $PID_FILE"
  23. rm -f "$PID_FILE"
  24. fi
  25. fi
  26. case "$APP_NAME" in
  27. rota-local-client) JAVA_OPTS="$JAVA_OPTS_ROTA_LOCAL_CLIENT $JAVA_OPTS_HEAPDUMP" ;;
  28. rota-local-server) JAVA_OPTS="$JAVA_OPTS_ROTA_LOCAL_SERVER $JAVA_OPTS_HEAPDUMP" ;;
  29. moct-local-client) JAVA_OPTS="$JAVA_OPTS_MOCT_LOCAL_CLIENT $JAVA_OPTS_HEAPDUMP" ;;
  30. *) echo "[ERROR] Unknown app name: $APP_NAME"; exit 1 ;;
  31. esac
  32. echo "[INFO] Starting $APP_NAME..."
  33. nohup "$JAVA_BIN" $JAVA_OPTS -jar "$JAR_FILE" > /dev/null 2>&1 &
  34. echo "[INFO] $APP_NAME started with PID $(cat "$PID_FILE")"
  35. }
  36. case "$1" in
  37. rota-local-client | rota-local-server | moct-local-client)
  38. start_app "$1"
  39. ;;
  40. all)
  41. for APP_NAME in $APP_LIST; do
  42. start_app "$APP_NAME"
  43. done
  44. ;;
  45. *)
  46. echo "Usage: $0 {rota-local-client|rota-local-server|moct-local-client|all}"
  47. exit 1
  48. ;;
  49. esac