nxtgauge-admin-solid/scripts/restart-admin-3000.sh

76 lines
1.5 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="/Users/ashwin/workspace/nxtgauge-admin-solid"
2026-04-10 01:17:00 +02:00
PID_FILE="/tmp/nxtgauge-admin-9202.pid"
LOG_FILE="/tmp/nxtgauge-admin-9202.log"
APP_URL="http://127.0.0.1:9202/admin/external-dashboard-management"
stop_server() {
if [[ -f "$PID_FILE" ]]; then
pid="$(cat "$PID_FILE" || true)"
if [[ -n "${pid:-}" ]] && kill -0 "$pid" 2>/dev/null; then
kill -9 "$pid" || true
fi
rm -f "$PID_FILE"
fi
2026-04-10 01:17:00 +02:00
lsof -tiTCP:9202 -sTCP:LISTEN | xargs -r kill -9 || true
}
status_server() {
2026-04-10 01:17:00 +02:00
if lsof -nP -iTCP:9202 -sTCP:LISTEN >/dev/null 2>&1; then
echo "admin-9202: running"
lsof -nP -iTCP:9202 -sTCP:LISTEN
exit 0
fi
2026-04-10 01:17:00 +02:00
echo "admin-9202: stopped"
exit 1
}
start_server() {
cd "$ROOT_DIR"
if [[ ! -f ".output/server/index.mjs" ]]; then
echo "Build output missing. Running build..."
npm run build
fi
2026-04-10 01:17:00 +02:00
nohup env HOST=127.0.0.1 PORT=9202 node .output/server/index.mjs >"$LOG_FILE" 2>&1 &
new_pid=$!
echo "$new_pid" > "$PID_FILE"
for _ in {1..20}; do
if curl -fsS -m 3 "$APP_URL" >/dev/null 2>&1; then
2026-04-10 01:17:00 +02:00
echo "admin-9202: running (pid $new_pid)"
echo "url: $APP_URL"
exit 0
fi
sleep 1
done
2026-04-10 01:17:00 +02:00
echo "admin-9202: failed to start"
echo "Last log lines:"
tail -n 40 "$LOG_FILE" || true
exit 1
}
action="${1:-restart}"
case "$action" in
restart)
stop_server
start_server
;;
stop)
stop_server
2026-04-10 01:17:00 +02:00
echo "admin-9202: stopped"
;;
status)
status_server
;;
*)
echo "Usage: $0 [restart|stop|status]"
exit 2
;;
esac