Preciso saber se um processo com um determinado PID abriu uma porta sem usar comandos externos. Devo então usar o /proc
sistema de arquivos. Eu posso ler o /proc/$PID/net/tcp
arquivo, por exemplo, e obter informações sobre as portas TCP abertas pelo processo. No entanto, em um processo multithread, o /proc/$PID/task/$TID
diretório também conterá um net/tcp
arquivo. Minha pergunta é :
Preciso examinar todos os net/tcp
arquivos de threads ou a porta aberta pelos threads será gravada no net/tcp
arquivo de processo .
fonte
fd
diretório de cada thread? Ou o/proc/pid/fd
diretório "herda" os/proc/pid/task/tid/fd
diretórios?fd
diretório de um thread apenas repete ofd
diretório do processo.Por favor
e você terá uma saída como esta
A segunda coluna (endereço_ local) da saída mostra a porta em hexadecimal. Use sua calculadora de programação para converter o código hexadecimal em decimal.
Por exemplo, aqui, a porta: 01BB (em hexadecimal) é igual a 433 (em decimal), que é a porta padrão HTTPS.
fonte