Linux 释放占用端口

场景

在使用 Swoole 扩展库的 WebSocket 服务时,直接退出终端,但是 WebSocket 使用的端口依然坚挺的在被占用着。 导致再次启动 WebSocket 服务失败。

释放占用端口

释放端口,需要完成三步操作:

  1. 找到系统当前所有的端口
  2. 找到对应端口在系统中的进程 ID(PID)
  3. 使用 kill -9 [PID] 命令结束进程

1. 找到系统当前所有的端口

使用 netstat 命令查找本机各端口的网络连接情况

$ netstat -tln

#结果如下
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1997            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
tcp6       0      0 :::3306                 :::*                    LISTEN

这里我们要找的是 1997 端口

2. 找到对应端口在系统中的进程 ID(PID)

依据查找到的 1997 端口找到对应进程, lsof -i :1997, 注意 : 冒号不要漏掉了

lsof -i:1997

#结果如下
COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
php     29416 root    3u  IPv4 101371054      0t0  TCP *:gdp-port (LISTEN)
php     29416 root   16u  IPv4 101405652      0t0  TCP VPS-OJ26RUCK:gdp-port->116.228.152.202:procos-lm (ESTABLISHED)
php     29416 root   19u  IPv4 101391904      0t0  TCP VPS-OJ26RUCK:gdp-port->116.228.152.202:dsom-server (ESTABLISHED)

3. 使用 kill -9 [PID] 命令结束进程

通过 lsof 命令我们找到了进程的 PID: 29416,接下来就是使用 kill -9 [PID] 把进程结束就好了

$ kill -9 29416

到这里就 OK 了,不过为了保险起见,再次执行 netstat -tln 确认是否结束了端口占用

参考:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网开发者交流社区

SpringBoot与docker

12320
来自专栏吴伟祥

Docker学习——三大组件的应用(二) 顶

Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。 下面将介绍更多关于镜像的内容,包括:从仓库获取镜像...

16320
来自专栏python3

Docker安装

安装之前,我们首先确保自己的linux系统内核版本高于3.10,并且系统是64位,才能体验Docker。所以我用的是Centos7.3

40720
来自专栏A周立SpringCloud

Docker系列教程07-Dockerfile指令详解

Dockerfile有十多个指令。本节我们来系统讲解这些指令,指令的一般格式为 指令名称参数。 ADD 复制文件 ADD指令用于复制文件,格式为: ADD<sr...

39670
来自专栏测试驿栈

Docker_部署jenkins(dockerfile实现)

我用的是ubuntu14.04的基础镜像,并且在基础镜像中已经把ant,tomcat,jdk的安装包配置好了。具体的这里不做赘述。

1.9K30
来自专栏刺客博客

基于Docker制作H5ai+SSH+Aria2镜像(附带Dockerfile)

29830
来自专栏程序员笔记

Docker 学习手册

23640
来自专栏散尽浮华

Docker容器学习梳理--日常操作总结

使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Com...

49550
来自专栏漫漫全栈路

Docker搭建.Net Core环境

安装dotNET Core有两种方式,下面分别例举。

292110
来自专栏北京马哥教育

CentOS 7下安装Logstash ELK Stack 日志管理系统(下)

修改防火墙,对外开放tcp/5601 [root@elk elk]# firewall-cmd --permanent --add-port=5601/tcp ...

29540

扫码关注云+社区

领取腾讯云代金券