ss -lnptu conectado a awk con una llamada a ps -p. Estoy en un dispositivo móvil, por lo que es un poco complicado escribir un ejemplo completo en este momento.
Enchufes de escucha:
ss -lnptu | awk 'NR>1 { split($7,p,","); printf "Listen: "$5 " Command: "; system("ps --no-headers -o args p "p[2]); }'
Todos los sockets (probablemente requerirán un filtrado adicional debido a sockets sin información de proceso en TIME_WAIT, etc.):
ss -anptu state listening state established state connected state unconnected | grep -v TIME_WAIT | awk 'NR>1 { split($7,p,","); printf "Listen: "$5 " Command: "; system("ps --no-headers -o args p "p[2]); }'
Recibía errores de ps
en Ubuntu 16.04 cuando se usa la respuesta de Mark Sturgill tal cual. Necesitaba una ligera modificación para que funcionara:básicamente agregó un split
extra para aislar aún más el PID numérico del formato unido que ss
devuelve (por ejemplo, pid=1306 -> 1306
). También agregué el -ww
bandera para hacer que ps genere los argumentos completos:
ss -lnptu | awk 'NR>1 { split($7,p,","); split(p[2],pid,"="); printf "Listen: "$5 " Command: "; system("ps --no-headers -ww -o args p "pid[2]); }'