shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Estrutura de script para criar fila de espera


From: Rodrigo Tenorio
Subject: Re: [shell-script] Re: Estrutura de script para criar fila de espera
Date: Thu, 17 Sep 2015 13:56:18 -0300

Concordo com o Itamar.

Se você ainda não quiser criar um arquivo de lock, crie um script que lide especialmente com a fila de espera.
Aí ao invés de o "usuário qualquer" executar a rotina diretamente, ele executará esse script que verificará se a rotina já está em execução.
Se estiver, ele criará/adicionará a/na lista de queue e fim de execução.
Se a rotina não estiver em execução...

Depois da rotina o script verifica se há queue:
Se houver ele chama a rotina novamente.

Ficaria mais complexo que simplesmente criar um lock, mas para minha curiosidade acho que seria legal.

Outra coisa interessante que me veio a mente agora era pesquisar se um script consegue obter seu próprio PID.
Se for possível, a ideia seria comparar PIDs com o mesmo nome de executável.

Se eu tivesse em casa, fuçaria nisso.
:)

Em 17 de setembro de 2015 13:20, address@hidden [shell-script] <address@hidden> escreveu:
 

Não sei se essa abordagem que você apresentou funciona.


Veja que está verificando a existência do script dentro do próprio script, então sempre estará sinalizando que existe um programa anterior, e na verdade pode ser a instância atual.

O Fernando Mercês, sugeriu usar o "wait", mas ai subentende que deveria saber qual o PID do processo, ou então ele vai aguardar todos processos em background terminarem, mesmo não sendo o que realmente precisa ser aguardado.

Acho que a solução é criar um arquivo de trava, algo como "script.lock", e verificar a existência no começo.
Caso existo o arquivo de trava criar um loop, até que o arquivo não exista mais, e só prosseguir no processamento. Mas para isso vc recria o arquivo de trava para evitar novas instâncias, e o apaga ao terminar.

Isso é bem comum, existem vários programas que usam desse artifício, por exemplo "apt".

[]'s
Itamar



reply via email to

[Prev in Thread] Current Thread [Next in Thread]