ss -lnptu wird mit einem Aufruf von ps -p an awk geleitet. Ich verwende ein mobiles Gerät, daher ist es im Moment etwas schwierig, ein vollständiges Beispiel einzugeben.
Listening Sockets:
ss -lnptu | awk 'NR>1 { split($7,p,","); printf "Listen: "$5 " Command: "; system("ps --no-headers -o args p "p[2]); }'
Alle Sockets (erfordern wahrscheinlich eine zusätzliche Filterung aufgrund von Sockets ohne Prozessinformationen in TIME_WAIT usw.):
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]); }'
Ich habe Fehler von ps
erhalten unter Ubuntu 16.04 bei unveränderter Verwendung der Antwort von Mark Sturgill. Benötigte eine leichte Änderung, damit es funktioniert:Im Grunde wurde eine zusätzliche split
hinzugefügt um die numerische PID weiter vom verbundenen Format ss
zu isolieren zurückgibt (z. B. pid=1306 -> 1306
). Ich habe auch den -ww
hinzugefügt Flag, damit ps die vollständigen Argumente ausgibt:
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]); }'