使用管道写入正在运行的进程的标准输入

adi*_*tya 8 linux process stdin

我处于与这篇文章类似的情况 但我无法得到那里提供的解决方案来解决我的情况,因为答案似乎只与该问题有关。

特别是,我无法理解这样做的目的是什么

cat my.fifo | nc remotehost.tld 10000
Run Code Online (Sandbox Code Playgroud)

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

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

Sve*_*ven 13

只需忽略包含的行nc,此问题中的 OP 希望使用它通过nc.

这给你留下了:

mkfifo yourfifo
cat > yourfifo &
mypid=$!
yourprogram < yourfifo
Run Code Online (Sandbox Code Playgroud)

现在您可以将数据发送到您的程序

echo "Hello World" > yourfifo
Run Code Online (Sandbox Code Playgroud)

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

  • `cat &gt; yourfifo &amp;` 在做什么? (2认同)