Cron @reboot: Run a Job at Startup
The expression is @reboot — it runs the command once each time cron starts after a boot, not on a clock schedule. The details and gotchas are below.
What @reboot does
@reboot /path/to/script runs the command once when the cron daemon starts, which is normally right after the system boots. It has no time fields — it is an event, not a schedule.
When it actually fires
It fires when cron itself starts, not at the exact instant the kernel boots. If cron is restarted without a reboot, the job may run again. It does not run if you only restart your user session.
Gotchas
The environment at boot is minimal — use absolute paths and set any needed variables inside the script. For services that must survive crashes and restarts, a systemd unit with After=network.target is more reliable than @reboot. Add sleep 60 at the start if the job depends on the network being up.
FAQ
What does @reboot do in cron?
It runs the command once when cron starts after a boot — a startup hook, not a timed schedule.
Does @reboot run at the exact boot moment?
No. It runs when the cron daemon starts, which is shortly after boot. It can also re-run if cron is restarted.
Why isn't my @reboot job running?
Often the environment or PATH is missing at boot, or a dependency (network, mounts) isn't ready. Use absolute paths and consider a short sleep or a systemd unit.