Как убить процесс, работающий на определенном порту в Linux?



Я попытался закрыть tomcat с помощью ./shutdown.sh от tomcat

1521   16  

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. k. a.-15 или soft kill отправляется, что иногда недостаточно чтобы убить процесс.).

используйте команду

 sudo netstat -plten |grep java

используется grep java как 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

этот работал на меня. вот ссылка из оригинального поста: ссылке

Я бы добавил этот один лайнер только для прослушивания на определенном порту:

kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)

Если вы хотите убить процесс, работающий на номер порта 8080, то сначала вам нужно найти идентификационный номер процесса порта 8080(PID), а затем убить его. Выполните следующую команду, чтобы найти номер порта 8080 PID:

sudo lsof -t -i:8080

здесь

  • судо - команда для запроса прав администратора (идентификатор пользователя и пароль).
  • lsof - список файлов(также используется для связанного списка процессов)
  • - t - показать только идентификатор процесса
  • - показывать только процесс, связанный с подключением к интернету
  • :8080 - показывать только процессы в этом номере порта

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

sudo kill -9 <PID>

здесь

  • убить-команда, чтобы убить процесс
  • -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

попробуй вот так,

 sudo fuser -n tcp -k 8080
  1. lsof -i tcp:8000 Эта команда выводит информацию о процессе, запущенном в порту 8000

  2. kill -9 [PID] Эта команда убивает процесс

Linux: вы можете использовать эту команду, если вы знаете порт :

netstat -plten | grep LISTEN | grep 8080

AIX:

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

Comments

    Ничего не найдено.