Иногда в моих локальных разработках случается, что неожиданно используется порт, с которым мне нужно работать.
Конкретный вариант использования для этого - когда я разрабатываю, например, порт 80
, но при запуске моего приложения в журналах указано, что порт уже используется.
Однако, когда я проверяю, есть ли у меня другие приложения, работающие на порту 80
, я не могу их найти. Так что же дает?
Выяснение причин использования порта - тема отдельной статьи. На данный момент я предполагаю, что причина, по которой вы здесь, не столько в том, почему, сколько в том, как - в частности, как вы можете быстро освободить этот порт?
Сначала найдите PID порта, который хотите убить.
Во-первых, чтобы убить что-то на вашем Mac, вам нужно узнать его идентификатор.
Этот идентификатор называется PID.
Что такое PID?
PID - это сокращение от идентификатора процесса. Каждое приложение на Mac работает с разными идентификаторами процесса.
Что за команда поиска?
Команда поиска выглядит следующим образом:
lsof -i :<portNumber>
Поэтому, если мы хотим убить любые порты, работающие на 80
, мы должны запустить следующее:
lsof -i :80
В выводе будет отображаться COMMAND
(по сути, удобное для пользователя имя приложения, если применимо), PID
(это то, что вы захотите отметить), USER
, FD
, TYPE
, DEVICE
, SIZE/OFF
, NODE
и NAME
.
Просто скопируйте PID
в буфер обмена на этом этапе. Он понадобится нам для нашей следующей команды - kill
.
Команда kill для освобождения порта
Теперь, когда PID
находится в буфере обмена, вы сможете kill
его. Звучит жестоко, не так ли? (Если вам интересно, вот страница руководства kill
. Мне нравится, что в ней есть следующая цитата: «Любовь никогда не умирает естественной смертью. Она умирает, потому что мы не знаем, как пополнить ее источник. Она умирает от слепота, заблуждения и предательства. Он умирает от болезней и ран, он умирает от усталости, увядания, потускнения »- Анаис Нин)
Просто введите следующую команду и не забудьте заменить PID
той, которую вы скопировали.
kill -9 PID
-9
просто сообщает команде kill
, что вы отправляете сигнал уничтожения. И это все!