Files
RedisClipSync/linux/slave-package/bin/start.sh

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"))."