В этой статье мы рассмотрим, как найти процесс, который слушает определенный порт в Linux.
Можно получить информацию о процесс, который слушает определенный порт командой:
$ sudo lsof -i :8000
В этом примере видно, что порт 8000 занят процессом python3.
Можно вывести список всех запущенных процессов Linux, который используют любые TCP/UDP порты:
$ sudo netstat -lntup| grep LISTEN
Мы используем следующие ключи:
-
-l
– показать тольо прослушиваемые порты -
-n
– показать IP адреса и номера портов в числовом виде и не пытаться их резолвить (соответствие номеров портов и название служб содержится в файле /etc/services) -
-t
– показать открытые TCP порты -
-u
– показать UDP порты -
-p
– показать название процесс, который прослушивает порт
Мы нашли PID процесса (
72005
), который использует порт и теперь можно вывести информацию о том, как он запущен:
$ ps -aux | grep 72005
В этом примере видно, что процесс запущен вручную пользователем root с помощью команды
python3 -m http.server
(используется для запуска простого HTTP сервера на python для публикации текущего каталога).
Чтобы быстро завершить процесс, который слушает нужный вам порт и освободить его, выполните:
$ sudo kill -9 72005
Проверьте, что порт теперь свободен:
$ sudo lsof -i :8000