Как убить процесс, работающий на определенном порту в Linux?
Я попытался закрыть tomcat, используя ./shutdown.sh
от tomcat
16 ответов
этой fuser 8080/tcp
напечатает вам PID процесса, связанного с этим портом.
и fuser -k 8080/tcp
убьет этот процесс.
работает только на Linux. Более универсальным является использование lsof -i4
(или 6 для IPv6).
чтобы перечислить любой процесс, прослушивающий порт 8080:
lsof -i:8080
чтобы убить любой процесс прослушивания порта 8080:
kill $(lsof -t -i:8080)
или более яростно:
kill -9 $(lsof -t -i:8080)
(-9
соответствует SIGKILL - terminate immediately/hard kill
сигнал: Вижу список сигналов уничтожения и какова цель опции -9 в команде kill?. Если сигнал не указан в kill
, термин сигнал a.к. a. -15
или soft kill
отправляется, чего иногда недостаточно убить процесс.).
используйте команду
sudo netstat -plten |grep java
используется grep java
as tomcat
использует java
как их процессы.
он покажет список процессов с номером порта и идентификатором процесса
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
число перед /java
- это идентификатор процесса. Теперь используйте kill
команда, чтобы убить процесс
kill -9 16085
-9
подразумевает, что процесс будет насильственно убит.
вы можете использовать команду lsof. Пусть номер порта, как здесь 8090
lsof -i:8090
эта команда возвращает список открытых процессов на этот порт.
что-то вроде...
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)
чтобы освободить порт, убейте процесс, используя его (идентификатор процесса 75782)...
kill -9 75782
Это сработало для меня. вот ссылка из оригинального поста: ссылке
Я бы добавил этот One-liner только для прослушивания определенного порта:
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
Если вы хотите убить процесс, работающий на port number 8080, то сначала вам нужно найти 8080 port process identification number(PID), а затем убить его. Выполните следующую команду, чтобы найти 8080 номер порта PID:
sudo lsof -t -i:8080
здесь
- судо - команда для запроса прав администратора (id пользователя и пароль).
- lsof - список файлов(также используется для связанного списка процессов)
- - t - показать только ID процесса
- -Я - показать только интернет-соединения, связанные с процессом
- :8080 - показывать только процессы в этом номере порта
Теперь вы можете легко убить свой PID, используя следующую команду:
sudo kill -9 <PID>
здесь
- kill-команда, чтобы убить процесс
- -9 - сильно
вы можете использовать одну команду, чтобы убить процесс на определенном порту, используя следующая команда:
sudo kill -9 $(sudo lsof -t -i:8080)
Для больше вы можете увидеть следующую ссылку как убить процесс на определенном порту в linux
это печатает для stdout идентификаторы процессов всего, что работает на <port_number>
:
fuser -n tcp <port_number>
он также печатает некоторые вещи в stderr, так:
fuser -n tcp <port_number> 2> /dev/null
затем мы можем предоставить эти идентификаторы процессов в kill
команда:
sudo kill $(fuser -n tcp <port_number> 2> /dev/null)
вы также можете поместить это в функцию, если вы делаете это много:
function killport() {
sudo kill $(fuser -n tcp 2> /dev/null)
}
чтобы узнать pid службы, работающей на определенном порту:
netstat -tulnap | grep :*port_num*
вы получите описание этого процесса. Теперь используйте kill или kill -9 pid. Легко убил.
Эл.г
netstat -ap | grep :8080
tcp6 0 0 :::8080 :::* LISTEN 1880/java
теперь:
kill -9 1880
не забудьте выполнить все команды как root
lsof -i tcp:8000
Эта команда содержит сведения о процессе, запущенном в порту 8000kill -9 [PID]
Эта команда убивает процесс
Linux: вы можете использовать эту команду, если вы знаете порт :
netstat -plten | grep LISTEN | grep 8080
экс:
netstat -Aan | grep LISTEN | grep 8080
затем вы берете первый столбец (пример: f100050000b05bb8) и выполняете следующую команду:
rmsock f100050000b05bb8 tcpcb
процесс убить.
Linux: сначала вы можете найти PID этой команды, если знаете порт:
netstat -tulpn
пример:
Local Address Foreign Address State PID/Program name
:::3000 :::* LISTEN 15986/node
затем вы берете процесс убийства. выполните следующую команду:
убить -9 PID
Expample: -
убить -9 15986
kill -9 `fuser 8080/tcp|xargs -n 1`
, эта команда также убивает процесс, который прослушивает порт 8080 с TCP-соединением
строить на чем @veer7 сказал:
Если вы хотите знать, что было на порту, сделайте это, прежде чем убить его.
$ sudo netstat -plten |grep java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1000 906726 25296/java
tcp6 0 0 :::8009 :::* LISTEN 1000 907503 25296/java
tcp6 0 0 :::8080 :::* LISTEN 1000 907499 25296/java
$ ps 25296
PID TTY STAT TIME COMMAND
25296 ? Sl 0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom
используйте "ps" и номер процесса, о котором netstat сообщил
sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp
результат: 80 / tcp: 1858 1867 1868 1869 1871
убить процесс один за другим
убить -9 1858
В Windows, это будет netstat -ano | grep "8080"
и мы получаем следующее
мы можем убить PID, используя taskkill /F /PID 10076