uso de lockfile no script e seu significado

0

Eu tenho um código em que abaixo da linha é usada devido a que eu fiquei preso.Eu caçoei a web, mas não entendi bem.apenas soube o conjunto básico de informações como abaixo

lockfile pode ser usado para criar um ou mais arquivos de semáforo. Se o arquivo de bloqueio não puder criar todos os arquivos especificados (na ordem especificada), ele aguardará o tempo de espera (o padrão é 8 segundos) e tentará tentar o último arquivo que não teve êxito.

Alguém pode me informar o entendimento. obrigado antecipadamente NOTA: LockFile é uma variável de caminho

if lockfile -1 -r0 ${LockFile}
then
    
por api1411 08.06.2016 / 16:48

1 resposta

6

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).

    
por 09.06.2016 / 02:23