Files
Anton_wireframe/server_manager.sh
T

68 lines
1.4 KiB
Bash
Raw Normal View History

#!/bin/bash
# Server management script for app/main.py
# Usage: ./server_manager.sh start|stop|restart
PID_FILE="server.pid"
LOG_FILE="server.log"
start() {
if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
echo "Server is already running (PID: $(cat "$PID_FILE"))"
return 1
fi
echo "Starting server..."
nohup uv run app/main.py > "$LOG_FILE" 2>&1 &
echo $! > "$PID_FILE"
echo "Server started (PID: $(cat "$PID_FILE"))"
}
stop() {
if [ ! -f "$PID_FILE" ]; then
echo "Server is not running (no PID file found)"
return 1
fi
PID=$(cat "$PID_FILE")
if ! kill -0 "$PID" 2>/dev/null; then
echo "Server is not running (PID $PID not found)"
rm -f "$PID_FILE"
return 1
fi
echo "Stopping server (PID: $PID)..."
kill "$PID"
# Wait for process to stop
for i in {1..10}; do
if ! kill -0 "$PID" 2>/dev/null; then
break
fi
sleep 1
done
if kill -0 "$PID" 2>/dev/null; then
echo "Force killing server..."
kill -9 "$PID"
fi
rm -f "$PID_FILE"
echo "Server stopped"
}
restart() {
stop
sleep 2
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac