我的问题与ZOS 2.1 和 1.13有关,我正在寻找 ZOS 中的命令,例如
netstat -ano
在 Windows 中。
我有一个 TCP Connection 的端口号,我想知道连接到它的 PID。
我知道一个用于用户和 TCP 的系统 MVS 命令:
/d omvs,asid=all
但输出不包括 PID。
是否有来自 USS (OMVS) MVS、Rexx 或 Java 函数的任何 shell 命令?
您想要的控制台命令是“D TCPIP,CONN”。这将向您显示所有各种网络连接的状态,您可以使用您提到的“D OMVS,A=ALL”命令来排列输出,以确定任何打开的套接字连接的 PID。
请注意,如果您的站点运行多个 TCP/IP 堆栈,您需要知道拥有您感兴趣的连接的 TCPIP 堆栈的作业名。“D TCPIP,DEVLINK”命令可以帮助您解决这个问题……通常,如果您运行多个堆栈,每个堆栈将服务于不同的 IP 地址(和设备)。您需要知道您连接到什么(IP 地址和端口),然后将 IP 地址与 TCP/IP 堆栈作业名相关联,然后您就可以获得所需的数据。
如果您需要从 USS shell 执行此类操作,您还可以使用“ps”和“netstat”命令来获取相同的数据。如果您不介意插入一点 JNI 代码,还有一些 API 可以让您以编程方式从 C/C++ 或 Java 执行这些操作。
请注意,您收到的关于“可能没有 PID”的评论通常不是真的。当应用程序打开一个套接字时,它首先被称为 UNIX 服务进程,这意味着调用者被分配了一个进程 ID。确实,有时您会遇到相反的问题 - 具有许多子任务的复杂应用程序有时最终会在单个地址空间中具有多个 PID。