使用管道写入正在运行的进程的stdin


8

我的处境与此帖子类似, 但我无法获得提供的解决方案以适合我的情况,因为答案似乎仅与该问题有关。

特别是,我无法理解

cat my.fifo | nc remotehost.tld 10000

就我而言,我有一个正在运行并等待输入的进程。如何使用命名管道将输入发送到该进程?

我试过了echo 'h' > /proc/PID/fd/0,只是在“进程”窗口中显示“ h”。

Answers:


13

只需忽略包含的行nc,此问题中的OP便想使用它通过来通过网络传输数据nc

剩下的就是:

mkfifo yourfifo
cat > yourfifo &
mypid=$!
yourprogram < yourfifo

现在,您可以使用

echo "Hello World" > yourfifo

如果完成,请终止程序,发出命令kill $mypid以摆脱虚拟进程以保持FIFO打开并rm yourfifo摆脱命名管道。


2
cat > yourfifo &做什么
亚历山大·米尔斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.