Bash

flock — Cron-Singleton Lock

admin by @admin ADMIN
1h ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Prevent two copies of a cron job from running simultaneously. flock takes an FD to a lock file; if the lock is held, the second invocation exits immediately.
Bash
Raw
#!/usr/bin/env bash
LOCKFILE="/var/lock/myjob.lock"

(
    # -n = non-blocking, -x = exclusive
    flock -n -x 9 || { echo "Another instance is running, exiting." >&2; exit 1; }
    # ─── critical section ──────────────────────────────
    echo "[$(date)] starting work…"
    sleep 30
    echo "[$(date)] done."
) 9>"$LOCKFILE"

# One-liner in crontab:
# */5 * * * * flock -n /var/lock/myjob.lock -c '/path/to/myjob.sh'
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.