O ponto de lockfile
é proteger a execução de alguns comandos com um bloqueio (também chamado de mutex) . Isto é, considere o seguinte programa:
if lockfile "$LockFile"; then
stuff
more stuff
rm -f "$LockFile"
else
echo 1>&2 "Fatal error: another process has been keeping the lock for too long or the lock file is inaccessible"
exit 3
fi
Apenas uma única instância do script por vez pode estar executando a parte stuff; more stuff
. Se você iniciar uma segunda instância, a segunda aguardará até que a primeira tenha terminado (mais precisamente, até que seja excluído o arquivo de bloqueio), até um certo tempo máximo determinado pela opção -TIME
.
Com o parâmetro -r0
, a segunda instância não espera nada: ela vai imediatamente para a ramificação else
. Portanto, você não pode executar uma instância simultânea desse script (ou desta parte do script, se esta for apenas uma parte de um script maior).