【问题标题】:How to Kill Vapor Server如何杀死蒸汽服务器
【发布时间】:2021-05-06 06:49:43
【问题描述】:

我正在尝试使用 Vapor 构建一个非常简单的服务。它依赖于 websockets,我在模拟器中的 iOS 设备和在 localhost 上运行的 vapor 之间建立了连接。

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

不知道怎么找杀掉这个进程,这个进程是8080上运行的socket,要重启才能退出,重复几次感觉就像把电脑扔出窗外(问题关于已经在 mentalHealthOverflow.com 中询问的内容)。

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

【问题讨论】:

  • 这能回答你的问题吗? How do I Kill a Vapor Server?
  • 显然不是,迈克。我们亲爱的老金边这里停电了,我不知道我原来的帖子没有丢失。
  • 这个问题在 Discord 聊天中讨论了很多次。杀死进程的最简单方法是打开Activity Monitor,搜索名称为Run(或您的应用程序调用方式)的进程,然后强制杀死它。最新的 Xcode 中的问题是它不会使用kill 9 命令正确终止进程。
  • 谢谢!我发现了不和谐的#vapor 流,比大多数文档都要好......

标签: ios swift server kill vapor


【解决方案1】:

修复其实很简单。转到您的终端并运行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)

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

kill 48904

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

【讨论】:

    【解决方案2】:

    我使用的 Oneliner:

    lsof -i :8080 -sTCP:LISTEN | awk 'NR > 1 {print $2}' | xargs kill -15
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 2017-02-01
      相关资源
      最近更新 更多