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

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

我的情况与此类似邮政 但我无法得到那里提供的解决方案来解决我的情况,因为答案似乎只与该问题有关。

尤其是,我不明白

cat my.fifo | nc remotehost.tld 10000

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

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

答案1

只要忽略包含的行nc,这个问题中的 OP 想要使用它通过网络传输数据nc

剩下的就是:

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

现在你可以使用以下命令将数据发送到你的程序

echo "Hello World" > yourfifo

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

相关内容