lsof -i :<port> 与套接字统计 ss -lp | 之间的区别grep <port>?

问题描述 投票:0回答:1

我正在使用 AWS linux / RHEL,我正在尝试识别并删除占用端口的僵尸 PID,以确保应用程序服务的干净启动/停止。

man lsof -i :会给我“其互联网地址的文件列表” 与 i 中指定的地址匹配。”因此在本例中是我当前主机的 .

[sas@hostname init.d]$ sudo lsof -i:8983
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    4670 solr  154u  IPv6  25276      0t0  TCP *:8983 (LISTEN)

man ss -lp 将为我提供所有侦听端口及其关联 PID 的“套接字统计信息”。

[sas@hostname init.d]$ sudo ss -lp 2>/dev/null | grep 8983
tcp   LISTEN 0      50                                                   *:8983                           *:*     users:(("java",pid=4670,fd=154))

我希望两者始终匹配,那么这是怎么回事?

[sas@hostname init.d]$ sudo ss -lp 2>/dev/null | grep 8080
[sas@hostname init.d]$
[sas@hostname init.d]$ sudo lsof -i:8080 | grep -v CLOSE_WAIT
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    17493  sas  469u  IPv6  71422      0t0  TCP *:webcache (LISTEN)
java    17493  sas  689u  IPv6 282980      0t0  TCP localhost:webcache->localhost:60754 (ESTABLISHED)
java    26885  sas 1160u  IPv6 286908      0t0  TCP localhost:60754->localhost:webcache (ESTABLISHED)

## Showing that ss does grab this webcache thing:
[sas@hostname init.d]$ sudo ss -lp 2>/dev/null | grep web
tcp   LISTEN 0      100                                                  *:webcache                       *:*     users:(("java",pid=17493,fd=469))

ss是不是少了什么?我在寻找错误的东西吗?为什么lsof抓到端口而ss抓不到监听端口?

linux sockets pid lsof ss
1个回答
0
投票

您正在 grep 端口上的

ss
输出。默认情况下,
ss
(以及大多数其他工具)输出服务名称而不是端口号。显然端口 8080 映射到了 webcache 服务名称。

使用

ss --numeric
输出端口号。

© www.soinside.com 2019 - 2024. All rights reserved.