9

我试图在从 git 下拉后在本地运行一个前端项目。之后我收到以下错误:

vents.js:183
  throw er; // Unhandled 'error' event
  ^

Error: listen EADDRINUSE 127.0.0.1:8081
    at Object._errnoException (util.js:1022:11)
    at _exceptionWithHostPort (util.js:1044:20)
    at Server.setupListenHandle [as _listen2] (net.js:1351:14)
    at listenInCluster (net.js:1392:12)
    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1501:7)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:97:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! apex-library@1.0.24 dev: `webpack-dev-server --hot`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the apex-library@1.0.24 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

我当时想,“等等,我什么都没跑!!”。还是我?运行后

sudo lsof -i :8081

我看见:

COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
cma     265 root   16u  IPv6 0x2756c3c2bce3e369      0t0  TCP *:sunproxyadmin (LISTEN)

我看到 webpack-dev-server 试图在与 sunproxyadmin 相同的端口上启动

...
  devServer: {
    port: 8081,
    hot: true,
  },
 ...

好的,那是什么sunproxyadmin,谁是cma(离开我的草坪!!!)(顺便说一句,我知道如何杀死它)

PS:有更多堆栈溢出点的人同意请为 sunproxyadmin、EADDRINUSE 和 cma 创建标签

4

1 回答 1

15

在四处挖掘之后,我发现 cma 是使用 sunproxyadmin 的 Mcaffe 的代理。

我想我可以找出如何更改它使用的端口,但是我无权更改它在我的机器上使用的端口,因为它是由我们的 IT 部门设置的,并且进程本身是由 root 用户启动的:

唤醒端口是全局设置,因此您不能只在某些代理上更改它:它必须是所有代理......

要更改端口,只需在配置/服务器设置页面中更改它,代理将在下次联系服务器时选择新端口。

https://community.mcafee.com/t5/ePolicy-Orchestrator/Linux-CMA-Agent-port-chnage/td-p/314596

由于某种原因,大多数关于这个主题的搜索都会导致 react 出现问题,这可能就是我在这里找到杀死它的解决方案的原因:

sudo lsof -n -i4TCP:8081 # get the process' PID
sudo launchctl list | grep 5693 # find the launchd endpoint
sudo launchctl remove com.mcafee.agent.macmn 

所以最后杀死它是我唯一的办法,除了改变 webpack 开发服务器启动的端口。

于 2018-04-17T12:22:13.083 回答