java - 如何用java读取另一台机器上运行的进程

标签 java json linux

我在 json 文件中有一个 IP 列表。我的 Java 应用程序应执行以下操作。

  1. 从 JSON 文件中读取 IP。 [已处理]
  2. 应检查 JSON 文件中提到的机器是否已启动并正在运行。
  3. 如果机器启动了,我的应用程序应该读取 在那台计算机上运行。

其他信息:

  1. 我的 java 应用程序将在 Linux 操作系统上运行
  2. JSON 文件中提到的机器也在 Linux 上
  3. 我的应用程序是一个独立的 Java 应用程序。

您能否建议我必须执行此任务的选项?

最佳答案

一种选择是在远程机器上安装/启用 SSH 服务器,然后

  1. 从 JSON 中读取 IP
  2. 对每个 IP 执行类似 ping 的操作以检查其是否可用。 在 Java 中,您可以为此使用 InetAddress#isReachable() 之类的东西。
  3. 使用 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/

相关文章:

具有微秒或纳秒精度的 Java 日期解析

java - 在 Android 中查找并暂停播放音频的任务

java - 为什么我的 servlet request.getParameter 返回 null?

json - bash JSON with jq - 如何检查空的 JSON 成员?

linux - ARM 上的视频捕获

java - 如何从字符串设置 JSpinner 的值?

json - 如何在不消除对象歧义的情况下使用 circe 解码 ADT

javascript - LinkedIn API - 如何在公司A中找到用户1和用户2之间的相互连接

c - 在 C 应用程序中挂载带有 ntfs-3g 的设备

linux - Bash 脚本字符串比较运算符