Соединение между PID и портом на ZOS

Мой вопрос касается ZOS 2.1 и 1.13, я ищу команду в ZOS, например

netstat -ano

в Windows.

У меня есть номер порта TCP-соединения, и я хочу знать PID, который к нему подключается.

Я знаю системную команду MVS для пользователей и TCP:

/d omvs,asid=all

но вывод не включает PID.

Есть ли какие-либо команды оболочки из USS (OMVS) MVS, Rexx или функции Java?


person Nessi    schedule 14.11.2015    source источник
comment
Я почти уверен, что pid не обязательно должен быть, т. е. если STC, например CICS, имеет открытый порт, PID может и не быть. Я полагаю, вы ознакомились с документацией по команде z/Unix netstat по адресу www-01.ibm.com/support/knowledgecenter/#!/SSLTBW_1.13.0/ и не делает того, что вы хотите.   -  person cschneid    schedule 15.11.2015


Ответы (1)


Вам нужна консольная команда "D TCPIP,CONN". Это покажет вам состояние всех различных сетевых подключений, и вы можете выровнять вывод с помощью упомянутой вами команды «D OMVS, A = ALL», чтобы определить PID для любого открытого подключения к сокету.

Обратите внимание, что если на вашем сайте работает несколько стеков TCP/IP, вам необходимо знать имя задания стека TCPIP, которому принадлежит интересующее вас соединение. Команда "D TCPIP,DEVLINK" может помочь вам в этом... обычно , если вы запустите несколько стеков, каждый из них будет обслуживать разные IP-адреса (и устройства). Вам нужно знать, к чему вы подключаетесь (IP-адрес и порт), затем связать IP-адрес с именем задания стека TCP/IP, после чего вы сможете получить нужные данные.

Если вам нужно сделать что-то подобное из оболочки USS, вы также можете использовать команды «ps» и «netstat» для получения тех же данных. Существуют также API-интерфейсы, которые позволят вам делать это программно из C/C++ или, возможно, из Java, если вы не возражаете против небольшого вмешательства кода JNI.

Обратите внимание, что полученный вами комментарий о том, что «может не быть PID», в целом не соответствует действительности. Когда приложение открывает сокет, оно сначала «дублируется» как процесс служб UNIX, а это означает, что вызывающей стороне присваивается идентификатор процесса. Действительно, иногда у вас возникает противоположная проблема — сложное приложение с множеством подзадач иногда может иметь несколько PID в одном адресном пространстве.

person Valerie R    schedule 27.11.2015
comment
Поскольку OP помечен Rexx, netstat можно вызывать напрямую, используя среду USS. Я в пути и не могу указать конкретику, но есть мануал по доступу к вещам USS от Rexx под TSO или IRXJCL. - person zarchasmpgmr; 01.12.2015