2009-04-15 3 views

ответ

7

Убить процесс, который слушает данный порт. Я считаю, что netstat показывает, что вы обрабатываете идентификаторы.

+3

NetStat -anp | Grep последний столбец процесс – user1747935

0

Я думаю, что единственный способ остановить процесс, который открыл порт.

9

Команда "netstat --programs" даст вам информацию о процессе, если вы являетесь пользователем root. Тогда вам придется убить «оскорбительный» процесс, который вполне может начаться снова, чтобы раздражать вас :-).

Что вы на самом деле пытаетесь достичь здесь? Решения будут варьироваться в зависимости от процессов, поддерживающих эти порты.

160

Как уже сообщалось, вам придется убить все процессы, которые прослушивают этот порт. Самый простой способ сделать это - использовать команду фьюзера (1). Например, чтобы увидеть все процессы прослушивания запросов HTTP на порт 80 (запустить как корень или использовать Суд):

# fuser 80/tcp 

Если вы хотите, чтобы убить их, а затем просто добавить опцию -k.

+1

я обнаружил, что отправляя запрос на порт также очищает его (я am no linux expert, хотя) –

+1

Чтобы установить фьюзер на Debian: sudo apt-get install psmisc (http://bitflop.com/document/107) – Korneel

+1

Это сработало, но мне пришлось установить psmisc тоже на CentOs 7 ('sudo yum install psmisc') –

2

Если вы действительно хотите немедленно убить процесс, вы посылаете ему сигнал KILL вместо сигнала TERM (последний - запрос на остановку, первый немедленно вступает в силу без какой-либо очистки). Это легко сделать:

kill -KILL <pid> 

Имейте в виду, однако, что в зависимости от программы, которую вы останавливая, его состояние может получить сильно поврежден при этом. Обычно вы хотите отправить сигнал KILL, когда нормальное завершение не работает. Мне интересно, какая основная проблема заключается в том, что вы пытаетесь решить, и является ли убийство правильным решением.

-12

Выключение компьютера всегда убивает процесс для меня.

+0

выключение серверной машины rar е. – waqas

+13

вы получили свой «самый забавный» значок? – jplandrain

+0

Не нужно останавливать компьютер. –

12

Вы можете использовать tcpkill (часть dsniff пакета), чтобы убить соединение, это находится на порту вам нужно:

sudo tcpkill -9 port PORT_NUMBER 
+0

Это единственный метод, который работал для меня. – brousch

+5

это просто зависает '$ sudo tcpkill -9 port 5432 tcpkill: прослушивание lxcbr0 [порт 5432]' – Anentropic

40

на убийство конкретного порта в Linux с помощью следующей команды

sudo fuser -k Port_Number/tcp 

замените Port_Number на ваш занятый порт.

+1

Это фактически убивает процесс, который открыл порт, а не сам порт. – vinayc

3

В терминале типа:

netstat -anp|grep "port_number"

Он покажет детали порта. Перейти к последнему столбцу. Он будет в этом формате.Например: - PID/Java

затем выполнить:

kill -9 PID. Worked on Centos5

+0

, очевидно, это не работает, если столбец PID пуст для этого порта – Anentropic

+1

... и это происходит, если у вас нет разрешения на просмотр процесса ... Попробуйте 'sudo netstat', чтобы на самом деле увидеть PID :) – Anentropic

+0

не работает на mac –

Смежные вопросы