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

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

redirecionamento ou TMOUT


From: moysespr
Subject: redirecionamento ou TMOUT
Date: Tue, 30 Aug 2005 11:51:54 -0700 (PDT)

Tenho problemas usando o cat lendo filedescriptors com conexões TCP.
Já consegui reduzir muito o problema lendo o header HTTP com o read do 
bash e, apenas se ele for recebido, continuar com um cat lendo os dados.
Essencialmente algo assim:
read <&3
....
[ $ok ]&&cat <&3

Isso diminui muito as falhas, mas mesmo usando essa seqüência, a cada (estimo
eu) algumas dezenas de milhares de conexões o script trava exatamente no cat,
com uma causa que desconheço.

Contornei isso há algum tempo usando o read para ler tudo, inclusive arquivos

binários. O problema é que o read é uma opção muito mais lenta e agora não é 
mais adequado devido ao maior número de transferências binárias.

Questões:

1. é possível redirecionar os dados recebidos de um fd para a saída de
outro, sem usar um programa externo como, cat, dd, head, etc.,
algo do tipo:  "<&3 >&1".
Isto acho que poderia ser testado com um arquivo:
 $ <a >b  # ou algo parecido; eu ainda não achei o caminho

2. considero que solução à questão 1 poderia resolver, pois imagino que
a variável TMOUT interromperia essa leitura se ela fosse exclusivamente
via shell, embora talvez à custa da execução do próprio script (tolerável)

3. já pesquisei, mas não percebi como, ou se é possível, usar um trap para
matar um binário que não mais responde e que foi chamado pelo shell

4. existe algum programa muito pequeno, ao estilo do cat, que possua timeout?


Detalhe: o script roda em um 486 com 8MB de memória, e não quero me dar
ao luxo de ter outro processo para controlar a conclusão dessa tarefa.

Grato por qualquer orientação.

PS.: ocorria um problema parecido com o exec no estabelecimento da conexão
TCP, mas esse nunca mais apareceu usando o bash 3.x .



                
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 


reply via email to

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