прослушать EADDRINUSE: адрес уже используется ::: 5000 - PullRequest
0 голосов
/ 22 января 2019

В моем приложении я использую одновременно, чтобы одновременно запустить и бэкэнд, и фронтэнд. После Ctrl + C Strill порт 5000 работает. Также порт 3000 работает. Я должен вручную убить процессы. Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

lsof -ti находит открытые файлы (сокеты - это файлы в системах на основе nix) -t удаляет заголовки, так что мы можем направить в kill (нам просто нужен идентификатор процесса), -i позволяет lsof найти файл на основе Интернет-адрес. Нам не нужно предоставлять полный адрес, мы можем просто искать по порту, используя шаблон: порт.

Некоторые команды принимают входные данные из stdin, и мы можем направить их напрямую, kill не является одной из этих команд, поэтому мы должны использовать xargs (он читает из stdin и вызывает указанную команду с вводом из stdin).

Наконец-то; позволяет нам выполнять обе команды независимо друг от друга. Независимо от того, lsof -ti: 3000 | Xargs Kill успешно или неудачно, lsof -ti: 5000 | xargs kill будет запущен, и наоборот.

lsof -ti:3000 | xargs kill; lsof -ti:5000 | xargs kill
0 голосов
/ 22 января 2019

пробег pa -xa | grep node

вы получите результат с processid

4476 pts/0    Sl+    0:01 node index.js

затем завершите процесс с помощью kill -9 4476

так просто, как

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...