侧边栏壁纸
博主头像
DOKI SEKAI博主等级

行动起来,活在当下

  • 累计撰写 114 篇文章
  • 累计创建 38 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

linux关闭的端口占用应用或关闭进程

君
2024-10-23 / 0 评论 / 0 点赞 / 13 阅读 / 4693 字

在Linux系统中,确实需要首先查出哪个进程占用了某个端口,或者找到特定的进程名称,才能有针对性地杀掉进程。下面是几种常用的查询端口占用或应用名称的方法,帮助你更好地找到需要终止的进程。

1. 使用 lsof 查询端口占用

lsof 命令可以列出所有打开的文件或网络端口,常用于查找哪个进程占用了特定的端口。

示例

lsof -i :<端口号>
  • 例如,要查找哪个进程占用了80端口:
    lsof -i :80
    

这会输出类似的信息:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd     1234 root    4u  IPv6  52770      0t0  TCP *:http (LISTEN)
  • PID 列表示进程的ID,COMMAND 表示进程名称。在此示例中,PID1234,而进程名称是 httpd

接下来你可以使用 kill 命令终止进程

kill -9 1234

2. 使用 netstat 查询端口占用

netstat 是另一个查询端口占用的工具,可以显示所有的网络连接,包括TCP、UDP等。

示例

netstat -tuln | grep <端口号>
  • -tuln 参数用于列出所有的TCP和UDP端口,并显示PID信息。
  • 例如,查找80端口:
    netstat -tuln | grep :80
    

结合 -p 参数显示PID和进程名称:

netstat -tulnp | grep :80

如果某个进程占用了端口,会显示相关的PID,然后你可以使用 kill 命令终止该进程。

3. 使用 ss 命令查询端口占用

ssnetstat 的现代替代工具,效率更高,适合查询网络连接信息。

示例

ss -tuln | grep <端口号>
  • 例如,查找80端口:
    ss -tuln | grep :80
    

要显示进程的PID和名称,可以使用以下命令:

ss -tulnp | grep :80

4. 使用 psgrep 查询进程名称

如果你已经知道进程名称,可以用 ps 命令来查找该进程的PID。

示例

ps aux | grep <进程名称>
  • 例如,查找 nginx 进程:
    ps aux | grep nginx
    

输出会显示类似以下内容:

root      1234  0.0  0.1  23456  5678 ?        Ss   10:00   0:00 nginx: master process /usr/sbin/nginx
www-data  5678  0.0  0.1  23456  5678 ?        S    10:00   0:00 nginx: worker process
  • 在这个示例中,PID1234

5. 使用 fuser 查找进程占用的端口

fuser 命令也可以用于查找特定端口号被哪个进程占用。

示例

fuser <端口号>/tcp
  • 例如,查找80端口的占用进程:
    fuser 80/tcp
    

输出会显示占用该端口的进程ID,你可以使用 kill 命令终止它。

6. 使用 pgrep 查询进程ID

pgrep 可以根据进程名查找其PID,简化了 ps aux | grep 的操作。

示例

pgrep <进程名称>
  • 例如,查找 nginx 进程:
    pgrep nginx
    

pgrep 会直接输出所有匹配的PID。随后可以使用 kill 终止进程。


总结:

  • 查询端口占用:使用 lsofnetstatssfuser
  • 查找进程ID:使用 ps aux | greppgrep
  • 终止进程:使用 killkill -9(强制终止)。

通过这些方法,你可以轻松地找到并终止占用指定端口或特定应用的进程。

0

评论区