36 lines
782 B
Bash
Executable File
36 lines
782 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$DIR"
|
|
|
|
PID_FILE="$DIR/server.pid"
|
|
LOG_FILE="$DIR/server.log"
|
|
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if kill -0 "$PID" 2>/dev/null; then
|
|
echo "Server is already running with PID $PID."
|
|
exit 0
|
|
else
|
|
rm -f "$PID_FILE"
|
|
fi
|
|
fi
|
|
|
|
# Start server in detached session, redirecting output to log file
|
|
setsid python3 -u server.py > "$LOG_FILE" 2>&1 < /dev/null &
|
|
PID=$!
|
|
echo $PID > "$PID_FILE"
|
|
|
|
|
|
# Quick check if it started successfully
|
|
sleep 0.5
|
|
if kill -0 "$PID" 2>/dev/null; then
|
|
echo "Server started successfully (PID $PID)."
|
|
echo "Logs: $LOG_FILE"
|
|
else
|
|
echo "Failed to start server. Check logs: $LOG_FILE"
|
|
rm -f "$PID_FILE"
|
|
exit 1
|
|
fi
|