81 lines
2.4 KiB
Bash
Executable File
81 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# ── start.sh — Pokreće fiskalni mock server ─────────────────
|
|
# ./start.sh — pokreće server u pozadini
|
|
# ./start.sh -f — pokreće server u prvom planu (vidiš logove)
|
|
# ./start.sh status — proverava da li je server živ
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PID_FILE="$SCRIPT_DIR/data/server.pid"
|
|
PORT=4566
|
|
|
|
# Proveri da li server već radi
|
|
check_running() {
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if kill -0 "$PID" 2>/dev/null; then
|
|
return 0 # radi
|
|
fi
|
|
fi
|
|
# Proveri i port
|
|
if ss -tlnp 2>/dev/null | grep -q ":$PORT "; then
|
|
return 0 # radi
|
|
fi
|
|
return 1 # ne radi
|
|
}
|
|
|
|
stop_server() {
|
|
echo "⏹ Zaustavljam server..."
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
kill "$PID" 2>/dev/null && echo " PID $PID ugašen"
|
|
rm -f "$PID_FILE"
|
|
fi
|
|
fuser -k "${PORT}/tcp" 2>/dev/null
|
|
echo "✅ Server zaustavljen"
|
|
}
|
|
|
|
case "${1:-}" in
|
|
status)
|
|
if check_running; then
|
|
echo "🟢 Server je POKRENUT na http://localhost:$PORT"
|
|
echo " PID: $(cat "$PID_FILE" 2>/dev/null || echo '?')"
|
|
else
|
|
echo "🔴 Server NIJE pokrenut"
|
|
fi
|
|
;;
|
|
stop)
|
|
stop_server
|
|
;;
|
|
-f|--foreground)
|
|
echo "🔧 Pokrećem server u PRVOM PLANU (Ctrl+C gasi)..."
|
|
cd "$SCRIPT_DIR"
|
|
python3 -u server.py
|
|
;;
|
|
*)
|
|
if check_running; then
|
|
echo "⚠️ Server je VEĆ pokrenut na http://localhost:$PORT"
|
|
echo " Koristi './start.sh stop' da ga zaustaviš, ili './start.sh status'"
|
|
exit 1
|
|
fi
|
|
echo "🔧 Pokrećem server u pozadini..."
|
|
cd "$SCRIPT_DIR"
|
|
mkdir -p data
|
|
nohup python3 -u server.py > "$SCRIPT_DIR/data/server_stdout.log" 2>&1 &
|
|
PID=$!
|
|
echo "$PID" > "$PID_FILE"
|
|
sleep 2
|
|
if check_running; then
|
|
echo "✅ Server pokrenut! PID: $PID"
|
|
echo " http://localhost:$PORT"
|
|
echo ""
|
|
echo " ./start.sh stop — zaustavi server"
|
|
echo " ./start.sh status — proveri status"
|
|
echo " ./start.sh -f — pokreni u prvom planu (vidiš logove uživo)"
|
|
else
|
|
echo "❌ Server nije uspeo da se pokrene. Proveri: data/server_stdout.log"
|
|
rm -f "$PID_FILE"
|
|
exit 1
|
|
fi
|
|
;;
|
|
esac
|