Catch cron jobs that run long and choke your system

Cron & Task Scheduling (Cron/Systemd Timers/At)

Catch cron jobs that run long and choke your system

🧩 The Challenge

Everyone thinks cron is a set-and-forget deal until a backup script hangs and suddenly you have fifty instances of it fighting for disk IO. It turns into a total dumpster fire before you even wake up to the alerts.

💡 The Fix

Use the flock utility to slap a file lock on your script so that no matter how long the first instance takes, the second one refuses to start. It keeps your server from spiraling into a performance death loop.

* * * * * /usr/bin/flock -n /tmp/my_script.lock /usr/local/bin/my_script.sh

⚙️ Why It Works

Adding the -n flag makes the command exit immediately if it can’t grab the lock instead of waiting around in a queue. It’s the simplest way to ensure only one instance of your logic is hitting the CPU at any given time.

🚀 Pro-Tip: Use a dedicated directory under /run/lock for these instead of /tmp so a random reboot or janitor script doesn’t wipe your lock files.

Linux Tips & Tricks | © ngelinux.com | 10/11/2026

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted