ss -lnptu は、ps -p への呼び出しで awk にパイプされました。私はモバイル デバイスを使用しているため、現時点で完全な例を入力するのは少し難しいです。
リッスン ソケット:
ss -lnptu | awk 'NR>1 { split($7,p,","); printf "Listen: "$5 " Command: "; system("ps --no-headers -o args p "p[2]); }'
すべてのソケット (TIME_WAIT などにプロセス情報がないソケットのため、追加のフィルタリングが必要になる可能性があります):
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]); }'
ps
からエラーが発生していました Mark Sturgillの回答をそのまま使用する場合、Ubuntu 16.04で。それを機能させるにはわずかな変更が必要でした:基本的に余分な split
を追加しました ss
という結合された形式から数値 PID をさらに分離する 戻り値 (例:pid=1306 -> 1306
)。 -ww
も追加しました ps が完全な引数を出力するようにするフラグ:
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]); }'