一条命令解决macmnsvc.exe占用8081端口的问题

简介: 无法杀掉macmnsvc.exe进程,一条命令解决macmnsvc.exe占用8081端口的问题!

缘起

从前有一个SpringBoot程序,我启动了它。很不幸启动失败,报错如下:

[2020-04-29 16:30:51.086] [main] [ERROR] [apache.catalina.core.StandardService:182 ] - Failed to start connector [Connector[HTTP/1.1-8081]]
org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-8081]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225)
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:261)
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:198)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:311)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:164)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1242)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1230)
    at onemore.study.EightZeroEightOneApplication.main(EightZeroEightOneApplication.java:18)
Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1020)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 13 common frames omitted
Caused by: java.net.BindException: Address already in use: bind
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:219)
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1156)
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:591)
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1018)
    ... 14 common frames omitted

很明显,启动失败的原因是8081端口被占用了。这个很简单,找到占用端口的进程,把它杀掉就可以了。

寻找解决办法之路

查找占用8081端口的进程的PID:

C:\>netstat -nao | findstr "8081"
  TCP    0.0.0.0:8081           0.0.0.0:0              LISTENING       25056
  TCP    [::]:8081              [::]:0                 LISTENING       25056

根据进程的PID查找进程名:

C:\>tasklist | findstr 25056
macmnsvc.exe                 25056 Services                   0      7,548 K

根据进程名杀掉进程:

C:\>taskkill /f /t /im macmnsvc.exe
错误: 无法终止 PID 25056 (属于 PID 824 子进程)的进程。
原因: 拒绝访问。

拒绝访问?这是什么进程?搜了一下,原来是McAfee Agent,杀毒软件肯定有保护机制,无法结束进程。又搜了一下,McAfee Agent如何修改端口。只在McAfee论坛上找到了一篇几年的帖子,McAfee工程师是这样回复的:

按照McAfee工程师的指引,我没有找到对应的配置选项,可能是时间久远版本不同了。解决方法的寻找之路就此陷入了尴尬的境地。

最终解决办法

不过,在搜索的过程中,我发现一个叫做FrmInst.exe的程序,它用于McAfee Agent框架安装。它有很多参数,详见用于在 Windows 上安装 McAfee Agent 的命令行选项。我注意到一个参数:/REMOVE ,如果 McAfee Agent 未使用,则将其删除。 如果正在使用,McAfee Agent 将更改为更新程序模式。 于是,我尝试了一下:

"C:\Program Files\McAfee\Agent\x86\FrmInst.exe" /REMOVE=AGENT

McAfee Agent开始被重新安装,重新安装后奇迹出现了,8081端口不再被占用了。

相关文章
|
4天前
|
Linux 网络安全
Centos 防火墙端口控制命令
Centos 防火墙端口控制命令
42 3
|
4天前
|
Linux 网络安全
Linux - firewall-cmd 命令添加端口规则不生效排查
Linux - firewall-cmd 命令添加端口规则不生效排查
201 0
|
4天前
|
监控 网络协议 Unix
Linux命令-nc(端口监控、文件传输、反弹shell等)
Linux命令-nc(端口监控、文件传输、反弹shell等)
137 0
|
4天前
|
人工智能 Linux Shell
用命令修改宝塔面板修改默认端口
用命令修改宝塔面板修改默认端口
119 0
|
4天前
|
弹性计算 网络协议 安全
宝塔面板放行阿里云端口命令操作教程
布署宝塔面板阿里云服务器需要开放哪些端口?阿里云服务器“安全组设置”详解
284 1
|
4天前
|
Java
cmd常用命令(端口占用)
cmd常用命令(端口占用)
|
4天前
|
关系型数据库 MySQL 数据库
一条命令解决端口占用,开启mysql
一条命令解决端口占用,开启mysql
38 0
|
4天前
|
网络协议 Linux
百度搜索:蓝易云【【http服务】使用命令来查看和停止端口教程。】
通过按照上述步骤使用命令来查看和停止端口,您可以轻松地管理正在运行的服务。请确保在停止端口上的服务时,选择正确的端口号,并谨慎操作以避免影响其他正常运行的服务。
34 0
|
4天前
|
Linux Windows
Linux - netstat命令与端口占用
Linux - netstat命令与端口占用
45 0
|
4天前
|
网络协议 网络安全
百度搜索:蓝易云【通过netstat命令查看进程与端口的对应关系?】
通过netstat命令,你可以查看当前系统上所有的网络连接信息,并通过PID/Program name列确定与每个连接关联的进程。这对于识别占用特定端口的进程非常有用。
37 1