我在 json 文件中有一个 IP 列表。我的 Java 应用程序应执行以下操作。
- 从 JSON 文件中读取 IP。 [已处理]
- 应检查 JSON 文件中提到的机器是否已启动并正在运行。
- 如果机器启动了,我的应用程序应该读取 在那台计算机上运行。
其他信息:
- 我的 java 应用程序将在 Linux 操作系统上运行
- JSON 文件中提到的机器也在 Linux 上
- 我的应用程序是一个独立的 Java 应用程序。
您能否建议我必须执行此任务的选项?
最佳答案
一种选择是在远程机器上安装/启用 SSH 服务器,然后
- 从 JSON 中读取 IP
- 对每个 IP 执行类似
ping
的操作以检查其是否可用。 在 Java 中,您可以为此使用InetAddress#isReachable()
之类的东西。 - 使用 SSH 连接到 IP 并发出
ps
等 linux 命令以获取机器中正在运行的进程的列表。在 java 中,您可以使用任何可用的 SSH 库。例如:jsch
您甚至可以跳过第 2 步,直接尝试 SSH 连接,并确定主机是否在那个方向。但是 ping 会更可靠(但要确保没有防火墙设置阻止远程机器响应 ping) .
更新
您可以使用运行时的 exec 命令代替 InetAddress#isReachable() 来运行 native ping 命令。 check this
关于java - 如何用java读取另一台机器上运行的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35607682/