91 lines
2.5 KiB
Bash
91 lines
2.5 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Scan Bridge Service Manager
|
||
|
|
# Usage: ./scan_bridge_restart.sh [start|stop|restart|status]
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
LOG_FILE="/tmp/scan_bridge.log"
|
||
|
|
PID_FILE="/tmp/scan_bridge.pid"
|
||
|
|
|
||
|
|
# Activate environment
|
||
|
|
source /home/dolphin/siloqy_env/bin/activate
|
||
|
|
|
||
|
|
case "$1" in
|
||
|
|
start)
|
||
|
|
if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
|
||
|
|
echo "Scan bridge already running (PID: $(cat $PID_FILE))"
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "Starting scan bridge..."
|
||
|
|
cd "$SCRIPT_DIR"
|
||
|
|
nohup python3 scan_bridge_service.py > "$LOG_FILE" 2>&1 &
|
||
|
|
echo $! > "$PID_FILE"
|
||
|
|
sleep 2
|
||
|
|
|
||
|
|
if kill -0 $(cat "$PID_FILE") 2>/dev/null; then
|
||
|
|
echo "✓ Started (PID: $(cat $PID_FILE))"
|
||
|
|
else
|
||
|
|
echo "✗ Failed to start"
|
||
|
|
rm -f "$PID_FILE"
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
|
||
|
|
stop)
|
||
|
|
if [ -f "$PID_FILE" ]; then
|
||
|
|
PID=$(cat "$PID_FILE")
|
||
|
|
if kill -0 "$PID" 2>/dev/null; then
|
||
|
|
echo "Stopping scan bridge (PID: $PID)..."
|
||
|
|
kill "$PID"
|
||
|
|
sleep 2
|
||
|
|
rm -f "$PID_FILE"
|
||
|
|
echo "✓ Stopped"
|
||
|
|
else
|
||
|
|
echo "Process not running"
|
||
|
|
rm -f "$PID_FILE"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo "No PID file found, killing any scan_bridge processes..."
|
||
|
|
pkill -f "scan_bridge_service.py" 2>/dev/null
|
||
|
|
echo "✓ Stopped"
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
|
||
|
|
restart)
|
||
|
|
$0 stop
|
||
|
|
sleep 1
|
||
|
|
$0 start
|
||
|
|
;;
|
||
|
|
|
||
|
|
status)
|
||
|
|
if [ -f "$PID_FILE" ]; then
|
||
|
|
PID=$(cat "$PID_FILE")
|
||
|
|
if kill -0 "$PID" 2>/dev/null; then
|
||
|
|
echo "✓ Scan bridge running (PID: $PID)"
|
||
|
|
echo " Uptime: $(ps -o etime= -p $PID 2>/dev/null | tr -d ' ')"
|
||
|
|
echo " Log: $LOG_FILE"
|
||
|
|
else
|
||
|
|
echo "✗ Process dead (stale PID file)"
|
||
|
|
rm -f "$PID_FILE"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
if pgrep -f "scan_bridge_service.py" > /dev/null 2>&1; then
|
||
|
|
echo "⚠ Running but no PID file"
|
||
|
|
else
|
||
|
|
echo "✗ Not running"
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Show last log entries
|
||
|
|
if [ -f "$LOG_FILE" ]; then
|
||
|
|
echo ""
|
||
|
|
echo "Last 3 log entries:"
|
||
|
|
tail -3 "$LOG_FILE" | grep -E "(Pushed|ACTIVE|ERROR)"
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
|
||
|
|
*)
|
||
|
|
echo "Usage: $0 [start|stop|restart|status]"
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|