2

Я хочу использовать netcat для выгрузки нескольких блоков строк в файл. Я запускал это в своем терминале Linux, и все работает очень хорошо, пока я не попытаюсь отсоединить мою командную строку. Если я запускаю свою команду как отдельный сеанс, netcat останавливается после первого раунда строк.

Короче говоря, это работает:

nc localhost 3000 > test.txt

Но это не так:

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

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

Я полагаю, это связано с достижением конца отправки на стороне сервера, но я не знаю достаточно о netcat, чтобы сказать ему: «Эй! бодрствуйте, пока не прекратится ваше соединение

Идеи? Спасибо!!!

2 ответа2

1

Некоторые версии nc поддерживают опцию -d (особенно версию OpenBSD), которая не позволяет ему читать из стандартного ввода.

Таким образом, код станет:

nc localhost 3000 -d > test.txt &
1

netcat хочет отправить свой стандартный ввод через сокет и распечатать ответ, поэтому он ожидает, что они оба будут подключены и активны. Я не знаю хорошего способа создания команды, которая ждет вечно, но вы можете попробовать

sleep 86400000 | nc localhost 3000 > test.txt &

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .