InglêsFrancêsEspanhol

Executar servidores | Ubuntu > | Fedora > |


favicon do OnWorks

with-lock-ex - Online na nuvem

Execute com-lock-ex no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando com-lock-ex que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


with-lock-ex - armário de arquivos

SINOPSE


com-lock-ex -w|-q|-f arquivo de bloqueio comando args ...

DESCRIÇÃO


with-lock-ex irá abrir e bloquear o lockfile para escrita e então alimentar o restante do
seus argumentos para exec(2); quando esse processo terminar, o fd será fechado e o arquivo
desbloqueado automaticamente pelo kernel.

Se o arquivo não existe, ele é criado, com permissões rw para cada classe de usuário para
qual o umask tem w.

OPÇÕES


-w Aguarde até que o bloqueio esteja disponível.

-f Falha (imprimindo uma mensagem para stderr e saindo de 255) se o bloqueio não puder ser obtido
imediatamente porque outro processo o possui.

-q Silenciosamente, não faça nada (ou seja, saia 0 em vez de executar o processo especificado) se o
o bloqueio não pode ser adquirido imediatamente porque outro processo o possui.

STALE TRAVAS


O protocolo de bloqueio usado não sofre de bloqueios obsoletos. Se o cadeado não pode ser
adquiridos, um ou mais processos em execução devem conter o bloqueio; se a fechadura precisa
ser liberado, esses processos devem ser eliminados.

Sob nenhuma circunstância devem ser instituídos trabalhos cron do `limpador de bloqueio obsoleto 'ou similares.
Em sistemas onde podem existir muitos bloqueios, arquivos de bloqueio antigos podem ser removidos do cron, mas
apenas se cada bloqueio for adquirido antes que o arquivo de bloqueio seja removido, por exemplo com

com-lock-ex -q arquivo de bloqueio rm arquivo de bloqueio

BLOQUEIOS


Não há detecção de deadlock. Em um sistema com vários bloqueios, uma hierarquia de bloqueio deve
ser estabelecido, de modo que para cada par de fechaduras A e B qual processo pode bloquear
simultaneamente, também A>B or B>A onde a relação> é transitiva e não cíclica.

Então, para quaisquer duas fechaduras X e Y com X>Y é proibido adquirir X enquanto aguarda Y.
Em vez disso, adquira X primeiro, ou solte Y antes de (re) adquirir X e Y naquela ordem.

(Existem maneiras mais complicadas de evitar deadlocks, mas uma hierarquia de bloqueio é simples de
compreender e implementar. Se não atender às suas necessidades, consulte a literatura.)

TRAVANDO PROTOCOLO


O protocolo de bloqueio usado por com-lock-ex é como se segue:

O bloqueio é mantido por um processo (ou grupo de processos) que mantém um bloqueio exclusivo fcntl
no primeiro byte do arquivo simples que possui o nome especificado. Um titular da fechadura
(e apenas um detentor do bloqueio) pode excluir o arquivo ou alterar o inode para o qual o nome
refere-se, e assim que o faz, deixa de segurar a fechadura.

Qualquer processo pode criar o arquivo se ele não existir. Não há necessidade de o arquivo
conter todos os dados reais. Na verdade, usar o arquivo para armazenamento de dados é fortemente
não recomendado, pois isso excluirá a maioria das estratégias de atualização confiável. Use um
em vez disso, lockfile separado.

A capacidade de obter o bloqueio corresponde à permissão de gravação no arquivo (e, claro,
permissão para criar o arquivo, se ele ainda não existir). No entanto, processos com
apenas a permissão de leitura no arquivo pode impedir que o bloqueio seja adquirido; Portanto
Os arquivos de bloqueio geralmente não devem ser legíveis por todos.

Quando um (grupo de) processos deseja adquirir o bloqueio, ele deve abrir o arquivo (com
O_CREAT) e bloqueie-o com fcntl(2) F_RWLCK, Operação F_SETLK or F_SETLKW. Se este
for bem-sucedido, ele deve fstat o descritor de arquivo que possui e o arquivo por seu caminho. Se o
dispositivo e inode coincidem, então o bloqueio foi adquirido e permanece adquirido até que
grupo de processos altera o arquivo ao qual o nome se refere, exclui o arquivo ou libera
o bloqueio fcntl. Se não o fizerem, outro processo adquiriu o bloqueio e excluiu o
arquivo entretanto; você deve agora fechar seu filedescriptor e começar novamente. com-trava-
ex segue esta especificação.

Observe que rebanho(2) é um tipo diferente de bloqueio para fcntl(2). com-lock-ex usos fcntl.

Use with-lock-ex online usando serviços onworks.net


Ad


Ad