crontool
Paste a schedule, read it in English, see the next runs.

Run a Cron Job at Reboot (@reboot)

Put @reboot at the start of a crontab line to run the command once each time cron starts after boot: @reboot /path/job.sh. It runs when the cron daemon starts, not necessarily when every service is ready — add a sleep if your job needs the network.

The special string

@reboot is one of cron's named schedules. A line like @reboot /path/job.sh runs once when the cron daemon initializes after the machine boots. It replaces the five time fields entirely.

It runs at cron start, not full boot

@reboot fires when cron starts, which can be before the network, database, or other services are up. If your job depends on them, delay it: @reboot sleep 30 && /path/job.sh.

User vs system crontab

@reboot works in a user crontab (crontab -e). It does not run on systemctl restart cron — only on an actual boot where cron starts fresh.

When systemd is a better fit

For start-up jobs with real dependencies, a systemd service with After=network-online.target and WantedBy=multi-user.target is more reliable than @reboot.

FAQ

How do I run a cron job at startup?

Add a line beginning with @reboot, e.g. @reboot /path/job.sh. It runs once when the cron daemon starts after boot.

Why didn't my @reboot job run?

@reboot fires only on an actual boot (not on restarting the cron service), and only if your crontab was loaded. It may also run before the network is ready — add sleep or use a systemd service.

How do I delay an @reboot job until the network is up?

Prefix a sleep: @reboot sleep 30 && /path/job.sh, or better, use a systemd service with After=network-online.target.