MAC/Linux解决端口占用

一、前言

Mac OS/Linux 启用一些服务的时候,如果非正常退出,再次启动经常会遇到 address already in use,端口被先前启动的服务进程所占用,导致服务无法使用。
这种情况,可以注销或重启(注销不一定有用),或在终端中查找占用端口的进程并杀死,然后重启服务。

二、如何查看端口占用情况?

查看端口的命令有netstat、lsof等。

2.1. netstat命令

netstat -an | grep 端口号

注意:
OS X 的 netstat 不能查看使用端口的PID/程序名(linux可以),建议使用lsof命令代替。

2.2. lsof命令

lsof(list open files)是一个列出当前系统打开文件的工具。

常用命令:
1. 查看指定端口占用情况:

sudo lsof -nP -iTCP:端口号 -sTCP:LISTEN

2. 查看所有进程监听的端口:

sudo lsof -nP -iTCP -sTCP:LISTEN

3. 查看所有java进程监听的端口:

sudo lsof -nP -iTCP -sTCP:LISTEN | grep java

结果如下:

java  45380 vision  140u  IPv6 0x907f281d0aff1577      0t0  TCP *:53761 (LISTEN)
java  45380 vision  141u  IPv6 0x907f281d12df9037      0t0  TCP *:53759 (LISTEN)
java  45380 vision  147u  IPv6 0x907f281d1127f597      0t0  TCP *:53762 (LISTEN)
java  45380 vision  154u  IPv6 0x907f281d112e2597      0t0  TCP *:8761 (LISTEN)
java  45382 vision  159u  IPv6 0x907f281d16a36577      0t0  TCP *:53774 (LISTEN)
java  45382 vision  160u  IPv6 0x907f281d16a36017      0t0  TCP *:53772 (LISTEN)
java  45382 vision  166u  IPv6 0x907f281d14c7b557      0t0  TCP *:53775 (LISTEN)
java  45382 vision  184u  IPv6 0x907f281d16a73fd7      0t0  TCP *:8081 (LISTEN)

4. 输出占用该端口的 PID:

lsof -nP -iTCP:端口号 |grep LISTEN|awk '{print $2;}'

lsof命令会同时列出PID,方便kill。

  • n 表示不显示主机名
  • P 表示不显示端口俗称
  • 不加 sudo 只能查看以当前用户运行的程序

三. kill进程

  1. 杀掉指定进程

找到进程的PID,使用kill命令:

kill -9 PID
  1. 杀掉所有java进程:
kill -9 $(sudo lsof -nP -iTCP -sTCP:LISTEN | grep java | awk '{print $2}')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,218评论 2 33
  • 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个专业的 Linu...
    七寸知架构阅读 10,929评论 1 71
  • 一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为进程(process)。进程是操作系统上非常重要的概念...
    Zhang21阅读 2,010评论 0 12
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,771评论 0 10
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,524评论 9 467