将字符发送到后台Java进程的stdin

时间:2013-03-14 17:36:43

标签: java process background pid

我希望将一个角色发送到后台运行的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();
实际上真的很奇怪:

  • 我在终端窗口启动该过程(此次不在后台)
  • 我打开另一个终端并查找进程'PID
  • 我运行命令

    echo q > /proc/*pid_of_the_process/fd/0

  • 在另一个窗口中显示此行

    q

所以出于某种原因,我会在进程正在运行的终端中看到这个字符,但实际上并没有被进程读取,因为如果是这样的话那么我会看到这一行

This is what I read 113

如果我在终端窗口中输入'q',我实际得到的就是这个。

有人知道我为什么会这么搞笑?

0 个答案:

没有答案