diff --git a/scripts/start_live.sh b/scripts/start_live.sh new file mode 100755 index 0000000..7e0ea05 --- /dev/null +++ b/scripts/start_live.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail +ROOT="/home/drjones/.openclaw/workspace/alpaca-llm-bot-v1" +LOGDIR="/home/drjones/.openclaw/workspace/logs" +mkdir -p "$LOGDIR" +cd "$ROOT" +if [[ -f "$LOGDIR/alpaca-bot.pid" ]] && kill -0 "$(cat $LOGDIR/alpaca-bot.pid)" 2>/dev/null; then + echo "already_running" + exit 0 +fi +nohup python3 -m uvicorn app:app --host 0.0.0.0 --port 8089 > "$LOGDIR/alpaca-bot.log" 2>&1 & +echo $! > "$LOGDIR/alpaca-bot.pid" +echo "started $(cat $LOGDIR/alpaca-bot.pid)" diff --git a/scripts/watchdog.sh b/scripts/watchdog.sh new file mode 100755 index 0000000..aeb1e79 --- /dev/null +++ b/scripts/watchdog.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -euo pipefail +ROOT="/home/drjones/.openclaw/workspace/alpaca-llm-bot-v1" +LOGDIR="/home/drjones/.openclaw/workspace/logs" +mkdir -p "$LOGDIR" +PIDFILE="$LOGDIR/alpaca-bot.pid" +HEALTH_URL="http://127.0.0.1:8089/health" + +need_start=0 +if [[ ! -f "$PIDFILE" ]]; then + need_start=1 +else + pid=$(cat "$PIDFILE" || true) + if [[ -z "$pid" ]] || ! kill -0 "$pid" 2>/dev/null; then + need_start=1 + fi +fi + +if [[ $need_start -eq 0 ]]; then + if ! curl -fsS -m 3 "$HEALTH_URL" >/dev/null; then + pid=$(cat "$PIDFILE" || true) + [[ -n "$pid" ]] && kill "$pid" 2>/dev/null || true + need_start=1 + fi +fi + +if [[ $need_start -eq 1 ]]; then + "$ROOT/scripts/start_live.sh" >> "$LOGDIR/alpaca-watchdog.log" 2>&1 +fi