Appium 问题。如果"listen eaddrinuse: address already in use",如何停止呢?为什么它没有停止?

Appium Question. If "listen eaddrinuse: address already in use", how to stop it? why it didn't stop?

我已经使用默认的 0.0.0.0:4723 地址和端口启动了 Appium,但后来出现了这个错误:

C:\User\me>appium
[Appium] Welcome to Appium v1.17.0
[HTTP] Could not start REST http interface listener. The requested port may already be in use. Please make sure there is no other instance of this server running already.
Fatal Error: listen EADDRINUSE: address already in use 0.0.0.0:4723
    at Server.setupListenHandle [as _listen2] (net.js:1309:16)
    at listenInCluster (net.js:1357:12)
    at doListen (net.js:1496:7)
    at processTicksAndRejections (internal/process/task_queues.js:85:21)

我发现我可以使用以下方式更改端口: appium -p 4724

我还发现我可以关闭与 0.0.0.0:4723 的连接(如果有的话),无论是在 Appium 桌面应用程序上还是在第二个 CMD 上。我关闭了 Appium 桌面应用程序,我停止并关闭了任何其他 CMD,但我仍然遇到相同的 Fatal Error: listen EADDRINUSE: address already in use 0.0.0.0:4723

然后我的问题:如何停止这个已经使用的地址?而且,为什么它没有停止?

我可以使用另一个端口启动我的服务器,但我不应该能够简单地停止与 4723 端口的连接并再次使用它吗?

表示端口已被占用。您必须终止该端口中的进程 运行。

在命令中键入以下内容 prompt/terminal 以获取进程 ID (PID)。

ps aux | grep appium

然后使用以下命令终止该进程

kill -9 PID

window 的替代过程:

netstat -ano | findstr :4723
tskill typeyourPIDhere 

通过导航到“开始”> 运行 > 键入 cmd > 右键单击​​“命令提示符”,然后以管理员身份 select 运行 在管理员模式下打开 CMD window。

C:\Users\admin>netstat -ano|findstr "PID :4723" 
Proto Local Address Foreign Address State PID 
TCP 0.0.0.0:4723 0.0.0.0:0 LISTENING 6134

要终止进程,请输入您要终止的端口的 PID(它将显示在 CMD 屏幕上) [/f为力]

taskkill /pid 6134 /f
taskkill /F /IM node.exe

无需记住和了解进程ID,只需在命令行中执行上述命令即可结束Appium服务。