如何找到完整的进程参数和关联的监听端口?

yll*_*ate 5 linux bash netstat lsof ps

我可以执行netstat -atulpn | grep java查找所有 Java 进程及其附带端口,这很棒,但我还希望还显示进程的完整执行参数。我不相信netstat到目前为止我所探索的一切都是可能的,所以我想我必须编写一个脚本来处理输出netstat,然后将 pid 传递进去ps,然后美化输出以显示ip+端口和完整的命令行。

有没有更好的方法来做到这一点,或者这是唯一的选择?

Mar*_*ill 4

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]); }'
Run Code Online (Sandbox Code Playgroud)

所有套接字(由于 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]); }'
Run Code Online (Sandbox Code Playgroud)