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

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

Re: [shell-script] redirecionamento ou TMOUT


From: Felipe Kellermann
Subject: Re: [shell-script] redirecionamento ou TMOUT
Date: Wed, 31 Aug 2005 23:12:32 -0300 (BRT)
User-agent: Pine <http://www.washington.edu/pine/>

On Wed, 31 Aug 2005 8:46am  -0700, moysespr wrote:

> Que pena! Implementar isso no bash, imagino eu, deve ser super simples. 
> Acho até hoje absurdo ter de usar prog.ext. apenas para isso. Sei que 

Na zsh, essa implementacao toma partido de um "comando" implicito. Esta' 
faltando um elemento nessa linha (gramaticalmente). Basta fazer com que 
seja executado o conteudo sobre algum comando.


> A variável ambiental TMOUT -gt 0, encerra algumas atividade em execução pelo
> shell, se transcorrer o tempo expecificado sem atividade.
> Por exemplo, se digitar no console:
> TMOUT=3
> Não havendo atividade por 3 seg. o shell deverá ser encerrado.
> Dessa forma é que poderia resolver o problema, mas apenas em built in.

Mas neste caso a TMOUT refere-se aa interacao com o usuario, com a entrada 
de comandos. Enquanto os comandos nao sao finalizados, a TMOUT nao estara 
sendo verificada. Faz um teste assim: Coloca um TMOUT qualquer e depois 
faz um loop ocupado,

$ TMOUT=5
$ while :; do :; done
$

Nao vai sair. A semantica seria mais util se fosse possivel fazer com que 
o TMOUT enviasse um alarme ao processo da shell. Na zsh funciona assim e 
eu nao lembro se a bash tem algum mecanismo parecido (se eu tenho um trap 
para ALRM, considera o TMOUT como um timer como um setitimer(2)).

Se tiver alguma dica, envia. Provavelmente o modo mais "sujo" de trarar 
isso seria colocar algum processo em background, que enviaria um sinal e 
etc., mas isso ja seria chato e feio, seria melhor usar uma linguagem.


> uso nesta aplicação, um "remendo", já que o conector TCP do shell tem seu
> próprio timeout e deveria liberar o cat. Verei seu patch mais tarde para
> tentar entender.

Nao tenho opiniao formada. Vou tentar consultar os gurus para ver qual 
seriam as implicacoes, os motivos para ter ou nao ter uma implementacao 
neste sentido (operacoes exclusivas, com/sem blocking, etc). Eu fiquei 
pensativo sobre esta questao...

De qualquer forma, com meu bash seria um simples:
$ (shopt -s nonblock; exec 3</etc/passwd; cat <&3)


> É isso, Fernando! Grato pela atenção.
> 

Apesar da insistencia das pessoas: Felipe, nao Fernando :-)
Ate mais,

-- 
Felipe Kellermann


reply via email to

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