如何杀死蒸气服务器

Dan*_*son 4 kill ios swift server vapor

我正在尝试使用 Vapor 构建一个非常简单的服务。它取决于 websockets,我在模拟器中的 iOS 设备和本地主机上运行的蒸汽之间建立连接。

当我想对服务器进行更改时,我会重新启动,有时会得到 [ ERROR ] bind(descriptor:ptr:bytes:): Address already in use (errno: 48)

我不知道如何找到并杀死这个进程,它是一个运行在 8080 上的套接字。我必须重新启动才能摆脱它,并且在重复几次后我感觉要把计算机扔出窗外(已经有这个问题了)在 mentalHealthOverflow.com 中询问)。

我怎样才能找到并终止这个进程?停止模拟器设备不会这样做。

Cal*_*ter 6

修复实际上很容易。转到您的终端并运行lsof -i :<port>,因此在您的情况下,lsof -i :8080. 您将获得在该端口上运行的所有进程的输出。

COMMAND   PID          USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Run     48904 calebkleveter   31u  IPv4 0x97c38af35a1b4785      0t0  TCP localhost:Run (LISTEN)
Run Code Online (Sandbox Code Playgroud)

然后你可以运行kill命令,PID从你得到的输出中传入:

kill 48904
Run Code Online (Sandbox Code Playgroud)

您现在可以运行您的 Vapor 服务。


ser*_*zhd 6

我使用的Oneliner:

lsof -i :8080 -sTCP:LISTEN | awk 'NR > 1 {print $2}' | xargs kill -15
Run Code Online (Sandbox Code Playgroud)

基本上只是将PIDVapor 进程(在端口 8080 上运行)kill作为参数发送到命令