Olá Julio,
Entendi a ideia, mas não consegui mandar o primeiro comando (cat) para
background com os demais processos conectados por pipes. A questão era:
cat "named_pipe" |
nc -l 12345 |
while read linha; do
...
echo OK > named_pipe
...
done
O problema era o cat que não morria enquanto não recebesse nada pelo FIFO,
mas acabei de testar algo aqui que resolveu o problema:
nc -l 12345 < <(cat "named_pipe") |
while read linha; do
...
echo OK > named_pipe
...
done
Desta forma se o netcat morre ele já dá um jeito no cat também... :-D
Obrigado a colaboração de todos.
[]'s
--
0010111100101010010100110100100101000111
Fernando LEMES da Silva
www.koho.com.br (0x53E56DAA)
0101001101001001010001110010101000101111
Em Quinta 11 Janeiro 2007 11:17, Julio C. Neves escreveu:
> Fala Fernando,
> vc andou meio sumido... Olha só, não é uma solução elegante, mas se vc que
> monitorar o netcat, supondo que o programa que dispara o netcat se chama
> prg.sh, vc sempre poderá inventar um time-out da seguinte maneira:
> Prompt> cat timeout.sh
> #!/bin/bash
> # Recebe por parâmetro a qtd de segundos estipulada para time-out
> trap "echo fim normal do processo; exit" 17 # sinal 17 monitora processo
> filho
> prg.sh &
> sleep $1
> kill $!
> echo Fim anormal do processo
> exit 1
> Abração,
> Julio
> :wq