diff --git a/llama b/llama index 36eebaf..250dcce 100755 --- a/llama +++ b/llama @@ -99,8 +99,13 @@ stop_running() { confirm "Stop it and start new model?" || { echo "Aborted."; exit 0; } info "Stopping running containers..." docker compose down --remove-orphans 2>/dev/null || true - ok "Stopped." fi + # Remove any stopped containers holding reserved names (from previous runs or failed starts) + for reserved in llama_server llama_bench open_webui; do + if docker ps -a --filter "name=^/${reserved}$" --format "{{.Names}}" 2>/dev/null | grep -q "^${reserved}$"; then + docker rm -f "$reserved" &>/dev/null || true + fi + done } build_profiles_flag() { @@ -180,11 +185,19 @@ cmd_stop() { current=$(running_model) if [[ -z "$current" ]]; then info "No llama containers running." - return + else + info "Stopping $current..." + docker compose down --remove-orphans fi - info "Stopping $current..." - docker compose down --remove-orphans - ok "Stopped." + # Remove any stopped containers holding reserved names + local cleaned=0 + for reserved in llama_server llama_bench open_webui; do + if docker ps -a --filter "name=^/${reserved}$" --format "{{.Names}}" 2>/dev/null | grep -q "^${reserved}$"; then + docker rm -f "$reserved" &>/dev/null && (( cleaned++ )) || true + fi + done + [[ $cleaned -gt 0 ]] && info "Removed $cleaned stopped container(s)." + ok "Clean." } cmd_status() {