4

我有一个 CentOS 服务器,它当前正在运行一个 java jar 应用程序。我需要编写一个 php 脚本来通过它的输入流与这个正在运行的程序进行通信。java 程序将其输出输出到日志文件,因此我不需要访问输出流。

我不想重新启动程序,只是访问正在运行的进程并与之交互。

有人可以指出我正确的方向吗?

4

2 回答 2

1

首先,找到应用程序的 ProcessID。您可以使用:

ps -Af | grep java

由于您使用的是 java,因此使用jps查找 PID 的命令可能会更方便。

我假设正在运行的应用程序的 PID 是 12345。发出命令就足够了:

cat >/proc/12345/fd/0

您输入的任何内容都将被放入该应用程序的标准输入中。请注意,它fd包含应用程序使用的文件描述符,我想第 0 个文件描述符总是stdin.

使用 PHP 写入文件(并因此被应用程序用作输入)也是可能的。

于 2013-03-25T17:44:05.307 回答
1

如果可移植性对您来说不是一件大事,为什么不创建自己的管道呢?我对 java 应用程序了解不多,但看看“mkfifo”函数/命令。

于 2013-04-23T09:04:19.773 回答