Version: 2.32.0
tart exec works the first time it's run on a VM but fails after restarting the VM.
tart clone ghcr.io/cirruslabs/ubuntu:latest test-vm
tart set test-vm --disk-size 20
tart run test-vm --no-graphics & disown
tart exec test-vm "ls" # This should ls the home directory of the VM
tart stop test-vm
tart run test-vm --no-graphics & disown
# This will hang for ~10s and then fail with "Failed to connect to the VM using its control socket: The operation couldn't be completed. (GRPC.GRPCConnectionPoolError error 1.), is the Tart Guest Agent running?"
tart exec test-vm "ls"
This appears to be a macOS-side issue where stale control sockets are not cleaned up. I've been able to successfully work around this with this script:
#!/bin/bash
# Wrapper around 'tart run' that cleans up stale control sockets first.
# Usage: tart-run <vm-name> [extra tart run args...]
VM_NAME="$1"
if [ -z "$VM_NAME" ]; then
echo "Usage: tart-run <vm-name> [args...]" >&2
exit 1
fi
SOCK="$HOME/.tart/vms/$VM_NAME/control.sock"
if [ -S "$SOCK" ]; then
echo "Removing stale control socket for $VM_NAME..."
rm -f "$SOCK"
fi
shift
exec tart run "$VM_NAME" "$@"
Version: 2.32.0
tart execworks the first time it's run on a VM but fails after restarting the VM.This appears to be a macOS-side issue where stale control sockets are not cleaned up. I've been able to successfully work around this with this script: