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.
