Files
ROMFASTSQL/proxmox/lxc102-docker/scripts/agents
Claude Agent 6ff2c6ee2c feat(lxc102): script tmux sbt pentru sandbox + statusline Claude Code
- sbt: sesiuni tmux (sbx1..3) care intră în sandbox și lansează agentul
  (claude/opencode/orice binar); tmux rulează pe host, panes prin sbx exec
- statusline.sh + bootstrap-statusline.sh pe /home/workspace/.agent
  (virtiofs persistent), reinstalat la fiecare intrare fiindcă /home/agent
  din sandbox e overlay efemer
- fix printf "--" -> printf -- "--" (eroare de usage când API-ul de cote
  nu răspunde)
- copii versionate ale scripturilor agents/sb + documentație README

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 11:13:55 +00:00

40 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Se asigură doar că sandbox-ul e pornit și RĂMÂNE pornit.
# Nu lansează niciun agent — agentul îl pornești tu, manual.
#
# agents pornește sandbox-ul + keepalive (idempotent)
# agents status arată starea
# agents stop oprește keepalive-ul și sandbox-ul
set -euo pipefail
SANDBOX="${SANDBOX:-claude-workspace}"
PIDFILE="$HOME/.cache/agents-keepalive-$SANDBOX.pid"
mkdir -p "$(dirname "$PIDFILE")"
running() { [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; }
case "${1:-up}" in
status)
running && echo "keepalive: activ (pid $(cat "$PIDFILE"))" || echo "keepalive: oprit"
sbx ls 2>/dev/null | grep -E "^(SANDBOX|$SANDBOX)" || true
;;
stop)
running && { kill "$(cat "$PIDFILE")" 2>/dev/null || true; rm -f "$PIDFILE"; echo "keepalive oprit"; }
sbx stop "$SANDBOX" 2>&1 | tail -1
;;
up)
sbx ls >/dev/null 2>&1 || true # repornește daemonul dacă e picat
sbx exec "$SANDBOX" true >/dev/null
if running; then
echo "sandbox '$SANDBOX' pornit; keepalive deja activ (pid $(cat "$PIDFILE"))"
else
nohup bash -c "while true; do sbx exec $SANDBOX sleep 86400 >/dev/null 2>&1; sleep 5; done" \
>/dev/null 2>&1 &
echo $! > "$PIDFILE"
echo "sandbox '$SANDBOX' pornit; keepalive activ (pid $!)"
fi
echo "intră cu: sb [proiect]"
;;
*) echo "utilizare: agents [up|status|stop]"; exit 1 ;;
esac