写入进程监听消息的标准输入

Write to stdin of process listening for messages

假设我开始一个进程:

#!/usr/bin/env bash

while read line; do
 echo "stdin message: $line"
done < "/dev/stdin"

显然这个进程正在侦听写入其标准输入的数据。另一个进程如何写入它?

这取决于进程的 stdin 连接到什么。如果它是命名管道,它们将写入管道文件。如果是 pseudo-tty,他们写入相应的主设备。

在大多数其他情况下,这通常是不可能的。

With Linux: 在你的 while 循环之前添加:

echo $$

在另一个 shell 中,使用 PID(例如 12345)如下:

echo "hello" >/proc/12345/fd/1