Se lockfile
não estiver instalado no seu sistema, então mkdir
fará
o trabalho: é uma operação atômica, e falha se o diretório
já existe (contanto que você não adicione a linha de comando -p
interruptor).
create_lock_or_wait () {
path="$1"
wait_time="${2:-10}"
while true; do
if mkdir "${path}.lock.d"; then
break;
fi
sleep $wait_time
done
}
remove_lock () {
path="$1"
rmdir "${path}.lock.d"
}