Постоянно приходится убивать рабочие процессы, чтобы запустить мое приложение Phoenix - PullRequest
0 голосов
/ 11 февраля 2019

В настоящее время я работаю над бэкэндом Phoenix с приложением React-Redux.Моя задача состоит в том, чтобы разработать новый компонент, но меня начинает раздражать необходимость постоянно запускать этот компонент:

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

, потому что если нет, он говорит мне Something is already running on port 3000.

Я получаю это сообщение в терминале, даже когда это просто браузер Chrome с документами на заднем плане.Я не хочу закрывать рабочие процессы своего браузера, чтобы запустить это приложение, и я никогда раньше не видел такого поведения.

Где может быть проблема?Как я могу начать устранять это?Имейте в виду, я не создавал это приложение, довольно новое для платформы Phoenix.

В любой момент времени, когда я выполнял lsof -i tcp:3000, выполняются следующие процессы:

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, также есть интерфейс React-Redux, работающий на порте 3000, поэтому я не верю, что изменение порта на серверной части Phoenix поможет в этом случае.

1 Ответ

0 голосов
/ 13 февраля 2019

Я нашел временное решение, запустив этот скрипт перед запуском Phoenix:

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

lsof - список открытых файлов

| awk '$1 == "node" { print $2 } - долларЗнак указывает, что столбец 1 равен узлу, если он захватывает PID, уникальным для него, чтобы он мог уничтожить свойство и передать PID и уничтожить его.

...