While diving deeper into Linux internals and modern SRE practices, I came across a question that many Linux engineers eventually ask:
Is cron obsolete now that systemd timers exist? And where does daemontools fit into all of this?
The answer is: they solve relatedโbut not identicalโproblems.
A quick comparison
Tool Primary Purpose
๐ฐ๏ธ cron Schedule commands or scripts at specific times
โฑ๏ธ systemd timer Schedule execution of systemd services
๐ daemontools Supervise long-running services (daemons) and automatically restart them if they fail
One realization that helped me was thinking about the questions each tool answers:
- cron: โWhen should I run this script?โ
- systemd timer: โWhen should I start this service?โ
- daemontools: โHow do I keep this service running continuously?โ
Cron vs Systemd Timers
Both can schedule recurring work, but systemd timers bring several capabilities that are particularly valuable in production environments.
Cron Systemd Timer
Runs commands directly Triggers a systemd service
Simple scheduling Scheduling + service management
Limited logging Rich logs via journalctl
Misses jobs if the server is powered off Can catch up using Persistent=true
No dependency awareness Can wait for networking, databases, or other services
Limited security controls Supports sandboxing, resource limits, and privilege restrictions
Imagine scheduling a nightly database backup.
With cron, if the server is powered off at the scheduled time, the backup is simply missed.
With a systemd timer configured with:
Persistent=true
the missed backup is executed automatically after the system boots.
That small feature can make a big difference in production.
Where daemontools fits
Earlier in my career, I also had the opportunity to work with daemontools by DJ Bernstein.
It reminded me that before systemd became the standard on most Linux distributions, engineers often combined multiple tools:
- cron โ scheduling
- daemontools โ service supervision
- syslog โ logging
Today, systemd integrates many of these capabilities into a single framework:
- Services
- Timers
- Logging (journald)
- Automatic restarts
- Dependency management
- Resource limits
- Security hardening
That doesnโt mean daemontools is obsoleteโit still has value in legacy systems, lightweight environments, and certain embedded Linux deploymentsโbut for modern Ubuntu, RHEL, and Debian servers, systemd has become the de facto standard.
My takeaway
As someone continuing to learn Linux, databases, Kubernetes, and SRE practices, one lesson stands out:
Understanding why these tools were created is just as important as learning how to use them.
Each represents a different stage in the evolution of Linux operations:
cron
โ
โผ
daemontools (service supervision)
โ
โผ
systemd
โโโ Services
โโโ Timers
โโโ Logging
โโโ Security
โโโ Resource Limits
โโโ Dependency Management
Enter fullscreen mode Exit fullscreen mode
For my own work going forward:
- โ Iโll still use cron for quick, lightweight scheduled tasks.
- โ Iโll use systemd timers for production automation such as backups, maintenance jobs, and infrastructure operations.
- โ And Iโll continue to appreciate daemontools as an elegant piece of Linux history that influenced how reliable service supervision evolved.
Learning the evolution of technology often explains why modern tools look the way they doโand thatโs one of the most rewarding parts of the journey.
What does your team primarily use today?
- Cron?
- Systemd Timers?
- Kubernetes CronJobs?
- Another scheduler or service supervisor?
Iโd love to hear your experiences and what has worked well in your environments.
๋ต๊ธ ๋จ๊ธฐ๊ธฐ