45 lines
1.0 KiB
Bash
Executable File
45 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
APP_HOME="$(dirname "$SCRIPT_DIR")"
|
|
JAR_PATH="$APP_HOME/lib/redis-clip-sync.jar"
|
|
LOG_FILE="$APP_HOME/logs/app.log"
|
|
PID_FILE="$APP_HOME/run/app.pid"
|
|
|
|
FOREGROUND="false"
|
|
CONFIG_PATH="$APP_HOME/conf/config.properties"
|
|
|
|
for arg in "$@"; do
|
|
if [[ "$arg" == "--foreground" ]]; then
|
|
FOREGROUND="true"
|
|
elif [[ "$arg" == *.properties ]]; then
|
|
CONFIG_PATH="$arg"
|
|
fi
|
|
done
|
|
|
|
if [[ ! -f "$JAR_PATH" ]]; then
|
|
echo "Jar not found: $JAR_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "$CONFIG_PATH" ]]; then
|
|
echo "Config not found: $CONFIG_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$APP_HOME/logs" "$APP_HOME/run"
|
|
|
|
if [[ "$FOREGROUND" == "true" ]]; then
|
|
exec java -jar "$JAR_PATH" "$CONFIG_PATH"
|
|
fi
|
|
|
|
if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
|
|
echo "RedisClipSync already running (pid=$(cat "$PID_FILE"))."
|
|
exit 0
|
|
fi
|
|
|
|
nohup java -jar "$JAR_PATH" "$CONFIG_PATH" >> "$LOG_FILE" 2>&1 &
|
|
echo $! > "$PID_FILE"
|
|
echo "RedisClipSync started (pid=$(cat "$PID_FILE"))."
|