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

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

Re: [shell-script] Netcat bidirecional.


From: Julio C. Neves
Subject: Re: [shell-script] Netcat bidirecional.
Date: Thu, 11 Jan 2007 16:58:35 -0200

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 <address@hidden>:
>
>
> 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]



reply via email to

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