#!/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'
Create a free account and build your private vault. Share publicly whenever you want.