Приходилось ли вам сталкиваться с ситуацией, когда вы пытаетесь запустить сервер или службу на своем Mac, а вам говорят, что порт уже используется?
Эта распространенная проблема возникает, когда порт, который вы пытаетесь использовать, занят другим процессом.
В этом руководстве мы расскажем вам, как определить и завершить эти процессы на macOS, чтобы ваши порты были свободны для использования.
Необходимые условия
- Mac под управлением macOS
- Базовые навыки работы с приложением Terminal
- Административный доступ к компьютеру (если требуется)
Шаг 1: Открытие Терминала
Приложение Terminal можно найти в папке Utilities в каталоге Applications.
Также можно воспользоваться Spotlight (Cmd + Пробел) и набрать “Terminal”.
Шаг 2: Поиск блокирующего процесса
- Определите порт: Сначала определите номер порта, с которым у вас возникли проблемы. Допустим, это порт 8080.
- Используйте команду lsof: В терминале введите следующую команду и нажмите Enter
sudo lsof -i :8080
- `sudo` используется для выполнения команд с правами администратора.
- `lsof` расшифровывается как “list open files” и представляет собой команду для перечисления файлов, открытых процессами.
- `-i :8080` фильтрует результаты, чтобы показать только процессы, использующие порт 8080.
Интерпретация результатов: Команда выводит список процессов, использующих указанный порт.
Ищите записи в столбцах COMMAND, PID (идентификатор процесса) и USER.
Шаг 3: Завершение процесса
Выберите нужный процесс: Определите процесс, который вы хотите завершить.
Будьте осторожны, так как завершение системных процессов может вызвать проблемы со стабильностью.
Завершите процесс с помощью команды kill: Используйте команду kill, за которой следует PID процесса.
Например, если PID равен 1234, вы используете команду kill:
sudo kill 1234
Если процесс не завершается, используйте kill -9, за которым следует PID, что заставит процесс остановиться.
sudo kill -9 1234
Шаг 4: Убедитесь, что порт свободен
Проверьте порт еще раз: Снова используйте команду lsof, чтобы убедиться, что порт свободен:
sudo lsof -i :8080
Если команда не выдает никаких результатов, это означает, что ни один процесс не использует порт 8080, и теперь он свободен для вас.
Заключение
Вы успешно научились определять и завершать процессы, блокирующие порты в macOS.
Этот навык неоценим для устранения проблем, связанных с сетью, и обеспечения бесперебойной работы ваших служб.
Дополнительные советы
- Будьте осторожны: всегда перепроверяйте, прежде чем завершить процесс, чтобы случайно не остановить критические функции системы.
- Альтернативные команды: Для более продвинутого управления изучите команды netstat и nmap для получения дополнительных сведений о сети.
см. также:
- 🐧 Как красиво выводить десятичные или двоичные числа на Linux / Unix
- 😡 Как узнать, кто использует файл в Linux
- 👨🎤 Файловая система Linux заполняется, несмотря на отсутствие больших файлов или каталогов
- 9 самых простых способов узнать идентификатор процесса (PID) в Linux
- Как узнать, какой номер порта используется процессом в Linux?