Fala Fernando, qdo vc disse que não conseguiu por causa do pipe, eu is sugerir justamente o que vc fez, o uso de process substitution. Vc tb pode fazer uma substituição de processos do conjunto inteiro redirecionando a entrada do done.
Mas tem 2 coisas estranhas: 1. Me parece que o correto é: nc -l 12345 <(cat "named_pipe") e não: nc -l 12345 < <(cat "named_pipe") já que o nc não aceita redirecionamento de entrada. 2. Se vc faz cat named_pipe e no loop vc faz echo ok > named_pipe, o arquivo named_pipe seria zerado, ficando somente a palavra ok lá. Abração, Julio :wq 2007/1/11, Fernando Lemes da Silva <[EMAIL PROTECTED]>: > > > 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 > > [As partes desta mensagem que não continham texto foram removidas]
