Как найти (и уничтожить) процесс, работающий на определенном порту? [Дубликат]

30

Возможное дублирование:
поиск процесса, использующего определенный порт в Linux

Я использую Ubuntu Linux 11.04. Как мне написать выражение сценария оболочки, которое найдет процесс, работающий на порту 4444, а затем уничтожит процесс?

Сообщество
источник
Я не думаю, что это дубликат, поскольку он спрашивает, как убить, а не найти процесс в порту: fuser -k 9000 / tcp
Крис

Ответы:

47

Вы можете использовать, lsofчтобы найти процесс:

lsof -t -i:4444

перечислил бы только pid процесса, прослушивающего порт 4444. Вы могли бы просто сказать

kill `lsof -t -i:4444`

если бы ты был смелым

Эрнест Фридман-Хилл
источник
14
+1 за «если бы ты был смелым».
Мистер Шикаданс
7

Вы используете lsof:

# lsof -n | grep TCP | grep LISTEN | grep 4444

Результат будет примерно таким:

pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)

Где первый столбец - это имя процесса, а второй столбец - это идентификатор процесса. Затем вы анализируете выходные данные, узнаете, что такое идентификатор процесса (PID), и используете killкоманду для его уничтожения.

Пабло Санта Круз
источник
1
Я никогда не слышал об Исофе раньше. Глядя на справочную страницу, она кажется невероятно полезной. Благодарность!
все в linux - это файл, а lsof позволяет вам находить файлы, так что ... да, очень полезно
jcollum
2

В качестве альтернативы вы можете использовать netstat -apif, если lsofон недоступен в вашей системе (так как он недоступен в системе busybox, с которой я регулярно работаю).

DaveRandom
источник
хороший вызов, мне было интересно, почему это не работает на образе докера, полученном из busybox, над которым я работал
jcollum
2
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`

Использует netstat для вывода списка прослушивающих сокетов INET с числовыми портами и родительскими процессами. Фильтрует строку 4444, вынимает 7-й столбец (pid / имя процесса) и дополнительно разбивает его на "/", чтобы получить pid. Проходит это, чтобы убить команду.

Арек Б.
источник
2
Я бы рекомендовал против убийства -9. Это не позволяет выполнять очистку, и некоторые интернет-приложения, скорее всего, будут иметь ресурсы, которые должны быть аккуратно закрыты.
Богатая гомолка