O Netcat pára quando está em uma sessão desanexada

2

Eu quero usar o netcat para despejar um número de blocos de strings em um arquivo. Eu tenho rodado isso no meu terminal linux e tudo funciona muito bem até eu tentar separar minha linha de comando. Se eu executar meu comando como uma sessão desanexada, o netcat parará após a primeira rodada de strings.

Em suma, isso funciona:

nc localhost 3000 > test.txt

Mas isso não acontece:

nc localhost 3000 > test.txt &
[1] 9040
max@starbuck ncats]$ 

[1]+  Stopped                 nc localhost 3000 > test.txt

Suponho que isso tenha a ver com o fim de um envio no servidor, mas não sei o suficiente sobre o netcat para informá-lo: "ei! fique acordado até a conexão cair"

Idéias? Obrigado !!!

    
por Maxwell Bottiger 21.03.2013 / 20:36

2 respostas

1

O netcat deseja enviar seu stdin através do soquete e imprimir a resposta, então espera tê-los conectados e ativos. Eu não sei uma boa maneira de criar um comando que aguarda para sempre, mas você poderia tentar

sleep 86400000 | nc localhost 3000 > test.txt &
    
por 22.03.2013 / 11:31
1

Algumas versões do nc suportam a opção -d (notavelmente a versão do OpenBSD), o que impede que ele tente ler de stdin.

Então o código se tornaria:

nc localhost 3000 -d > test.txt &
    
por 04.12.2014 / 18:14