Necesito saber si un proceso con un PID dado abrió un puerto sin usar comandos externos. Entonces debo usar el /proc
sistema de archivos. Puedo leer el /proc/$PID/net/tcp
archivo, por ejemplo, y obtener información sobre los puertos TCP abiertos por el proceso. Sin embargo, en un proceso multiproceso, el /proc/$PID/task/$TID
directorio también contendrá un net/tcp
archivo. Mi pregunta es :
¿Necesito revisar todos los net/tcp
archivos de subprocesos o el puerto abierto por subprocesos se escribirá en el net/tcp
archivo de proceso ?
fuente
fd
directorio de cada subproceso? ¿O el/proc/pid/fd
directorio "hereda" los/proc/pid/task/tid/fd
directorios?fd
directorio de un hilo simplemente repite elfd
directorio del proceso.Por favor
y obtendrás resultados como este
La segunda columna (local_address) de la salida muestra el puerto en hexadecimal. Use su calculadora de programación para convertir el código hexadecimal a decimal.
Por ejemplo, aquí, el puerto: 01BB (en hexadecimal) es igual a 433 (en decimal), que es el puerto predeterminado HTTPS.
fuente