如何关闭 Windows 系统中的开机自启动服务、解决端口占用问题相信有的读者有时会遇到端口被占用的问题往往需要关闭占用端口的服务但是第二天开机发现端口又被占用了。这种情况下说明这个服务是自动启动的需要手动调整其启动规则。本文将为你介绍关闭 Windows 系统中的开机自启动服务、解决端口占用问题的方法。注如果你不想看我所遭遇的经历只想看解决方法那么请直接跳到 2 和 3 的解决方法。文章目录如何关闭 Windows 系统中的开机自启动服务、解决端口占用问题1 问题背景如果你只想看解决方法可以跳过此部分1.1 发现问题1.2 分析原因2 临时解决方法关闭当前进程3 彻底解决方法关闭 GeoServer 开机自启动推荐3.1 打开服务管理器3.2 找到 GeoServer 服务3.3 修改启动方式4 命令行方式关闭自启可选5 补充开发环境端口建议6 总结1 问题背景如果你只想看解决方法可以跳过此部分1.1 发现问题这件事要从我前几天遇到的一个问题说起【已解决】Cesium 启动报错Cannot read properties of null (reading ‘port‘) 解决方案端口被占用在这里我再做一下简单的前情提要具体发生了什么请看上面这篇我之前写的文章⬆️我在运行 Cesium 项目时执行yarnstart出现如下错误Cesium development server running locally. Connect to http://localhost:undefined/ Error: This process does not have permission to listen on port8080. Error: listen EACCES: permission denied127.0.0.1:8080Node.js 无法监听8080 端口。1.2 分析原因通过端口检查发现8080 已被其他程序占用。执行命令netstat-ano|findstr :8080输出结果TCP0.0.0.0:80800.0.0.0:0 LISTENING6088TCP[::]:8080[::]:0 LISTENING6088说明PID 6088 正在监听 8080 端口。继续查询该进程tasklist|findstr6088结果GeoServer.exe6088Services可以看到GeoServer 服务占用了 8080 端口。由于 GeoServer 被注册为Windows 服务并设置为开机自启动因此每次启动电脑都会自动占用 8080 端口导致 Cesium 或 Node 项目无法启动。2 临时解决方法关闭当前进程可以先结束 GeoServer 进程taskkill /PID6088/F执行成功成功: 已终止 PID 为6088的进程然后重新运行yarnstartCesium 即可正常启动。但这种方法每次开机都要手动关闭进程不是长久方案。3 彻底解决方法关闭 GeoServer 开机自启动推荐3.1 打开服务管理器按Win R输入services.msc打开 Windows 服务管理界面。3.2 找到 GeoServer 服务在列表中找到GeoServer服务3.3 修改启动方式双击该服务修改Startup type → Manual或者Startup type → Disabled然后点击Stop保存即可。这样GeoServer 就不会在开机时自动启动也不会再占用 8080 端口。4 命令行方式关闭自启可选如果习惯使用命令行可以在管理员 PowerShell中执行查询服务sc querytypeservice|findstr Geo设置为手动启动sc config GeoServerstartdemand或者完全禁用sc config GeoServerstartdisabled5 补充开发环境端口建议在 GIS / Cesium 开发环境中常见端口配置如下服务推荐端口Cesium / Node dev server8080GeoServer8081PostgreSQL5432Tomcat8082避免多个服务同时使用8080导致端口冲突。6 总结如果遇到Error: listen EACCES: permission denied 127.0.0.1:8080可以按照以下步骤排查1️⃣ 查看端口占用netstat -ano | findstr :80802️⃣ 查询进程tasklist | findstr PID3️⃣ 关闭进程taskkill /PID xxxx /F4️⃣ 若是系统服务关闭开机自启动services.msc这样即可彻底解决Cesium / Node 端口冲突问题。