Oft habe ich den Fall, dass ein Shell-Skript im Cron läuft. Manchmal läuft es aber so lange, dass es vom cron ein zweites Mal gestartet wird. Das will ich verhindern. Nun habe ich eine schicke Lösung gefunden:
lockfile=/var/lock/.$(basename $0).exclusivelock
(
# Wait for lock on $lockfile (fd 200) for 10 seconds
if ! flock -x -w 10 200 ; then
echo >&2 "$0 is already running. exit."
exit 1
fi
# Hier das eigentliche Zeug...
) \
200>$lockfile
Anlass war übrigens das docker-compose-update-Skript.