How to Catch & Kill Zombie Cron Jobs Before They Kill Your Server
Technical GuidesThe Problem
A cron job starts, encounters a lock or a network hang, and never exits. The next minute, another one starts. Soon, your server is crawling with 'zombie' processes consuming all RAM.
The Solution
Use execution timeout monitoring and overlap prevention. CronRabbit detects 'Late' jobs and allows you to alert when a process has been running longer than its expected duration.
The Dangers of Process Overlap
When cron jobs overlap, they often compete for the same database records or file locks. This can lead to data corruption or a complete system hang. The first step to prevention is visibility.
Using flock for Prevention
One of the most effective ways to prevent zombies is using the flock command in your crontab. This ensures only one instance of your script runs at a time.
Code Examples
Preventing overlap with flock
Bash* * * * * flock -n /tmp/myjob.lock /usr/bin/php /var/www/artisan schedule:run