~/.cache, model weights, and installed packages persist.
.env
1. Provision the machine once
2. The job runner
CronJob, even another sleeping VM running cron.
When this beats Lambda
- No 250 MB layer hacks. Run anything
apt-getinstalls. - No 15-minute timeout. Set
timeout_msto whatever the job needs. - Stateful caches.
~/.cache/huggingface(40 GB of weights),~/.cargo, build artifacts — all persist between runs without an S3 round-trip. - Per-second billing while awake, zero while sleeping. A 4-second job costs 4 seconds.
- Real Linux. systemd services, persistent
crontab -eif you’d rather schedule inside the VM, full process tree.
Notes
timeout_mson executions kills the process if it overruns. Without it, executions inherit a generous platform default — set it explicitly for cron.- Auto-sleep is on by default (
autosleep: "5m"). Even if your script forgets to callsleep(), the machine slips back to zero cost five minutes later. - Schedule the wake-up itself outside the VM. A sleeping VM can’t wake itself; you need an external scheduler to call
wakeon the machine ID.
