From: Simon Ruderich Date: Tue, 8 Dec 2015 16:50:46 +0000 (+0100) Subject: use lock file to prevent concurrent access X-Git-Tag: v0.1.0~149 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9126627a8c026d12f4bd119f853a1295bd1d7a4;p=thirdparty%2Fdehydrated.git use lock file to prevent concurrent access Closes #31. --- diff --git a/letsencrypt.sh b/letsencrypt.sh index 509fa52..526ce9a 100755 --- a/letsencrypt.sh +++ b/letsencrypt.sh @@ -306,6 +306,25 @@ sign_domain() { echo " + Done!" } + +LOCKFILE="${BASEDIR}/lock" +remove_lock() { + if [[ -n "${LOCKFILE}" ]]; then + rm -f "${LOCKFILE}" + fi +} +trap 'remove_lock' EXIT + +# Use lock file to prevent concurrent access. +set -o noclobber +if ! { date > "${LOCKFILE}"; } 2>/dev/null; then + echo " + ERROR: Lock file '${LOCKFILE}' present, aborting." >&2 + LOCKFILE= # so remove_lock doesn't remove it + exit 1 +fi +set +o noclobber + + # Get CA URLs CA_DIRECTORY="$(_request get "${CA}")" CA_NEW_CERT="$(printf "%s" "${CA_DIRECTORY}" | get_json_string_value new-cert)"