Skip to content

Instantly share code, notes, and snippets.

@meonkeys
Created March 8, 2013 18:18
Show Gist options
  • Save meonkeys/5118588 to your computer and use it in GitHub Desktop.
Save meonkeys/5118588 to your computer and use it in GitHub Desktop.
# Timeout based
lockfile=/var/run/script.lock
(
flock --timeout 60 200 || ( echo "UNKNOWN: Lock failed"; exit 3)
stuff;
) 200>${lockfile}
# Only allow one at a time
lockfile=/var/run/script.lock
if ( set -o noclobber; echo "$$" > "$lockfile") 2> /dev/null;
then
trap 'rm -f "$lockfile"; exit $?' INT TERM EXIT
stuff;
rm -f "$lockfile"
trap - INT TERM EXIT
else
echo "UNKNOWN: Failed to acquire lockfile: $lockfile. Held by $(cat $lockfile)"
exit 3
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment