我希望将一个角色发送到后台运行的Java进程。我发现这篇文章https://serverfault.com/questions/178457/can-i-send-some-text-to-the-stdin-of-an-active-process-running-in-a-screen-sessi?answertab=active#comment155464_178470我认为可以解决这个问题,但实际上并没有。 出于测试目的,我添加了一行
System.out.println("This is what I read "+(int)temp);
以这种方式读取temp
int temp = inputStreamReader.read();
实际上真的很奇怪:
我运行命令
echo q > /proc/*pid_of_the_process/fd/0
在另一个窗口中显示此行
q
所以出于某种原因,我会在进程正在运行的终端中看到这个字符,但实际上并没有被进程读取,因为如果是这样的话那么我会看到这一行
This is what I read 113
如果我在终端窗口中输入'q',我实际得到的就是这个。
有人知道我为什么会这么搞笑?