Dado el PID y sin necesidad de netstat o herramientas similares, podéis saber qué puertos tiene en uso (y su estado y mucha más información) dicho proceso con algo parecido a esto:
ls -la /proc/$proceso/fd | grep socket | cut -d’>’ -f2|cut -d’:’ -f2 | while read id; do grep $id /proc/net/tcp; done;
La información resultante la podéis interpretar con la documentación del Kernel de GNU/Linux (proc_net_tcp.txt), si no os aclara la primera línea del fichero /proc/net/tcp:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
Para el caso que me ocupaba, sobraba con saber que de la línea:
4: 00000000:445C 00000000:0000 0A 00000000:00000000 00:00000000 00000000 1000 0 71298 1 f61904c0 300 0 0 2 -1
el primer campo (4) es un identificador de entrada; el segundo (00000000:445C) son la IP de origen y el puerto de origen; el tercero es la IP y puerto de destino y el cuarto (0A) es el estado (0A= Listen)
Si alguien no se fía de los resultados que le muestran sus herramientas, recordad que siempre está /proc