Eu encontrei uma solução por conta própria lendo em profundidade man lsof
. (Sim, RT * M ainda ajuda.) Obrigado @Gilles por mirar.
Aqui está a solução: lsof -aPi -p 555
(555 é o PID).
Explicação:
-
-p
para especificar o número do PID; -
-i
para exibir apenas dispositivos de rede; -
-a
para AND duas condições acima (caso contrário serão ORed); -
-P
para exibir números de porta (em vez disso, nomes de portas por padrão).
Além disso, é possível usar lsof -aPi4 -p 555
ou lsof -aPi6 -p 55
apenas para endereços IPv4 ou IP6.
Se a saída for analisada por outro programa, a opção -Fn
poderá ser útil. Com essa opção, lsof
produzirá "saída para outro programa" em vez de uma saída formatada. lsof -aPi4 -Fn -p 555
produzirá algo assim:
p554
nlocalhost:4321
PS Tudo isso eu testei no meu OS X El Capitan, mas como eu posso ver, deve funcionar no Linux também.