netstat -tulnap
показывает, какие порты используются. Как освободить порт в Linux?
netstat -tulnap
показывает, какие порты используются. Как освободить порт в Linux?
Ответы:
Как уже говорили другие, вам придется убить все процессы, которые прослушивают этот порт. Самый простой способ сделать это - использовать команду fuser (1). Например, чтобы увидеть все процессы, прослушивающие запросы http на порту 80 (запустите от имени пользователя root или используйте sudo):
# fuser 80/tcp
Если вы хотите убить их, просто добавьте опцию -k.
sudo yum install psmisc
)
kill -9 $(fuser 80/tcp 2>/dev/null)
Чтобы убить определенный порт в Linux, используйте команду ниже
sudo fuser -k Port_Number/tcp
замените Port_Number вашим занятым портом.
Вы можете использовать tcpkill
(часть dsniff
пакета), чтобы уничтожить соединение, которое находится на нужном порту:
sudo tcpkill -9 port PORT_NUMBER
$ sudo tcpkill -9 port 5432 tcpkill: listening on lxcbr0 [port 5432]
В типе терминала:
netstat -anp|grep "port_number"
Он покажет детали порта. Перейти к последнему столбцу. Это будет в этом формате. Например: - PID / Java
затем выполните:
kill -9 PID. Worked on Centos5
Для MAC:
lsof -n -i :'port-number' | grep LISTEN
Образец ответа:
java 4744 (PID) test 364u IP0 asdasdasda 0t0 TCP *:port-number (LISTEN)
и затем выполните:
kill -9 PID
Работал на Macbook
sudo netstat
на самом деле увидеть PID :)
Команда "netstat --programs"
выдаст вам информацию о процессе, если вы являетесь пользователем root. Тогда вам придется убить «оскорбительный» процесс, который вполне может начаться снова, просто чтобы вас раздражать :-).
Чего вы на самом деле пытаетесь достичь здесь? Решения могут отличаться в зависимости от процессов, содержащих эти порты.
Убейте процесс, который прослушивает рассматриваемый порт. Я считаю, что netstat показывает вам идентификаторы процессов.
Если вы действительно хотите немедленно завершить процесс, вы отправляете ему сигнал KILL вместо сигнала TERM (последний - запрос на остановку, первый вступит в силу немедленно без какой-либо очистки). Это легко сделать:
kill -KILL <pid>
Имейте в виду, однако, что в зависимости от программы, которую вы останавливаете, ее состояние может быть сильно повреждено при этом. Обычно вы хотите отправить сигнал KILL только тогда, когда обычное завершение не работает. Мне интересно, в чем заключается основная проблема, которую вы пытаетесь решить, и является ли убийство правильным решением.
Выключение компьютера всегда убивает процесс для меня.