Quick Summary — TL;DR
The cron daemon (crond or cron) is a long-running background process on Unix-like systems that executes commands on a schedule. It reads a table of scheduled tasks (the crontab) and runs each task when its cron expression matches the current time.
The daemon wakes up every minute, reads all crontab files, checks which entries match the current minute, and spawns a shell process for each match. Once the command finishes, the daemon captures its output and (on traditional systems) mails it to the crontab owner.
The crontab (cron table) is a per-user file that lists scheduled commands. Each line has a cron expression followed by the command to run:
Common crontab commands:
| Command | Description |
|---|---|
crontab -e | Edit your crontab |
crontab -l | List your crontab entries |
crontab -r | Remove your entire crontab |
User crontabs live in /var/spool/cron/ and run as the owning user. System crontabs (/etc/crontab and files in /etc/cron.d/) have an additional field for the user to run the command as. System crontabs are typically managed by root and are used for OS-level maintenance tasks.
For production workloads that need retries, monitoring, or cross-service scheduling, teams typically outgrow the cron daemon and move to:
The cron daemon is a background process on Linux and macOS that runs scheduled commands. It checks its schedule file (crontab) every minute and executes any commands whose time has come.
Run systemctl status cron (systemd) or service cron status (SysV). On macOS, check with launchctl list | grep cron.
Common causes: the cron daemon isn't running, the cron expression is wrong, the command's PATH isn't set correctly in the crontab environment, or the script has a permissions issue. Check /var/log/syslog or /var/log/cron for clues.
The cron daemon uses cron expressions to define schedules and crontab files to store them. For background jobs that need retries and monitoring, consider pairing cron with a job queue or replacing it with an external scheduler that handles exponential backoff, heartbeat monitoring, and health checks natively.
Recuro handles cron scheduling, retries, alerts, and execution logs -- so you can focus on building your product.
No credit card required