必须不断终止工作进程才能启动我的 Phoenix 应用程序

Constantly having to kill worker processes to start up my Phoenix app

我目前正在使用 React-Redux 前端应用程序开发 Phoenix 后端。我的任务是开发一个新组件,但我开始对必须一直这样 运行 感到恼火:

$ lsof -i tcp:3000
$ kill -9 PID

因为如果不是它告诉我 Something is already running on port 3000

我在终端中收到此消息,即使它只是 Chrome 浏览器并在后台显示文档。我不想为了启动这个应用程序而不得不关闭我的浏览器工作进程,而且我以前从未见过这种行为。

问题出在哪里?请记住,我没有构建此应用程序,而且我对 Phoenix 框架还很陌生。

在我执行 lsof -i tcp:3000 的任何给定时间,这些是过程 运行ning:

COMMAND PID USER FD TYPE   DEVICE       SIZE/OFF     NODE        NAME
node 13691 username 24u IPv4 0x19aa008389bcc55 0t0 TCP *:hbci (LISTEN)

所以在 dev.exs 它显示 port: 4000 但那是 Phoenix 后端,在端口 3000 上还有一个 React-Redux 前端 运行ning 所以我不相信改变在这种情况下,Phoenix 后端上的端口会有所帮助。

我在启动 Phoenix 之前通过 运行 这个脚本找到了一个临时解决方案:

lsof -i :3000 | awk ' == "node" { print }' | uniq | xargs kill -9

lsof - 列出打开的文件

| awk ' == "node" { print } - 美元符号表示第 1 列等于节点,如果它是获取 PID,对其进行唯一处理,以便它可以杀死 属性 并传递 PID 并杀死它。