这个
post只回答了我的部分问题.我的问题是使用/ proc
文件系统上的进程FD写入正在运行的进程的标准输入不具有相同的
效果.
问题:
>启动nc以侦听端口10000(此过程称为进一步的nc 1)
nc -l 10000
>启动另一个nc将chars发送到监听nc(这将是nc 2)
nc localhost 10000
>写入nc 2上的stdin
echo "some chars here" >> /proc/[PID-nc-2]/fd/0
问题:“这里的一些字符”没有听到nc(nc 1),但是在nc 2的控制台上显示了.
题:
为什么并且有可能使这个工作?
这不能按预期工作,因为/ proc /< PID> / fd / 0不是管道.如果您
调用发送方并将其stdin连接到管道,它将起作用
在接收主机上
nc -l 10000
在发送主机上
mkfifo my.fifo
cat >my.fifo &
cat my.fifo | nc remotehost.tld 10000
现在你可以
echo "Hello World" >my.fifo
myprog >my.fifo
请注意,cat> my.fifo需要保持fifo打开,否则会发送EOF并且连接过早关闭.要关闭连接,您需要杀死保持fifo打开的cat进程.