Netcat 在分离会话中停止

Netcat 在分离会话中停止

我想使用 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 了解不够,无法告诉它“嘿!保持清醒直到你的连接断开”

有想法吗?谢谢!

答案1

netcat 希望通过套接字发送其 stdin 并打印出响应,因此它希望它们都已连接并处于活动状态。我不知道创建永远等待的命令的好方法,但你可以尝试

sleep 86400000 | nc localhost 3000 > test.txt &

答案2

某些版本nc支持该-d选项(尤其是 OpenBSD 版本),它可以防止它尝试从 stdin 读取。

因此代码将变成:

nc localhost 3000 -d > test.txt &

相关内容