[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Como saber se meu shell já está executando?
From: |
Felipe Kellermann |
Subject: |
Re: [shell-script] Como saber se meu shell já está executando? |
Date: |
Wed, 16 Mar 2005 16:13:04 -0300 (BRT) |
On Wed, 16 Mar 2005 3:50pm -0300, Eliphas Levy Theodoro wrote:
> Hmm estava eu com meus botões pensando: Tem jeito de, em shell,
> "abrir" um arquivo e não fazer nada, como um open() em C/python?
Sim.
$ exec 3<>arquivo
Abre o descritor 3 com leitura e escrita para arquivo.
Mas infelizmente nós não podemos abrir de forma exclusiva.
> Com isso daria pra fazer algo como:
>
> if ! fuser arquivo_lock; then
> funcao_massa_que_abre_o_arquivo_lock &
> faz algo
> fuser -k arquivo_lock
> fi
Perfeitamente. Também se usa. Naturalmente, locks funcionam assim.
Adicionalmente há alguns truques que podem ser feitos com permissões.
Só há um detalhe: 'fuser' e tudo o que ele faz é "não padrão". Se fosse
para usar ele, eu ainda recomendaria o uso do lockfile. Ele vai acabar
fazendo justamente isso, mas um pouco melhor.
Mas a tua sugestão certamente seria a mais bonita, simples e prática se
tivéssemos algumas coisa como, digamos:
$ exec 3e<arquivo
Que abriria o arquivo 'arquivo', descritor 3, só leitura, exclusivo.
Juntamente com algumas permissões, ficaria um lock perfeito para fazer
essa verificação de 'um shell ainda está executando'.
Não tenho conhecimento de qualquer implementação que tenha feito esse tipo
de adição, infelizmente. Seria uma ótima *adição*, é uma ótima sugestão.
--
Felipe Kellermann
[As partes desta mensagem que não continham texto foram removidas]