Иногда полезно знать, какой процесс занял тот или иной порт, например, порт 80. В этой статье будет рассказано, как это сделать в Linux.
Решить поставленную задачу можно с помощью одной из команд — netstat, fuser и lsof. Также можно использовать псевдофайловую систему /proc (однако это менее удобный способ и мы его рассматривать не будем). Далее будут показаны примеры использования этих команд.
Представим, что нам нужно найти процесс, использующий порт 80. Попробуем сделать это с помощью netstat.
Определяем процесс, использующий порт 80 с помощью netstat
В данном случае видно, что порт 80 используется процессом apache2. 11681 — это PID процесса. Получить дополнительную информацию о процессе можно командами:
Информация о процессе
Можно также ввести команду ps -ax | grep apache2 для того, чтобы узнать, какие процессы с именем apache2 еще запущены.
Список процессов apache2
Узнать, какой процесс использует наш порт, можно и с помощью команды lsof:
Использование команды lsof
А вот здесь уже более интересный вывод. Наш процесс с PID 11681 работает от имени root, остальные с именем apache2 — от имени
Дерево процессов apache2
Команда fuser вернет не только PID родительского процесса, но и PID всех дочерних процессов:
Использование команды fuser