如何杀死在Linux的特定端口上运行的进程?

我试图从tomcat /bin目录中使用./shutdown.sh来closurestomcat。 但是发现服务器没有正确closures。 因此我无法重新启动
我的tomcat运行在8080端口上。

我想杀死在8080运行的tomcat进程。 我首先想要在特定端口(8080)上运行进程列表,以便select要杀死哪个进程。

这个fuser 8080/tcp将打印你在该端口进程绑定的PID。

而这个fuser -k 8080/tcp将会终止这个过程。

仅适用于Linux。 更普遍的是使用lsof -i4 (或IPv6)。

列出侦听端口8080的进程:

 lsof -i:8080 

要终止侦听端口8080的进程:

 kill $(lsof -t -i:8080) 

或更猛烈地:

 kill -9 $(lsof -t -i:8080) 

使用该命令

  sudo netstat -plten |grep java 

使用grep java作为tomcat使用java作为他们的进程。

它将显示具有端口号和进程ID的进程列表

 tcp6 0 0 :::8080 :::* LISTEN 1000 30070621 16085/java 

/java之前的数字是进程ID。 现在使用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) 

释放端口,使用它来终止进程(进程ID是75782)…

 kill -9 75782 

这个为我工作。 这里是从原来的post链接 : 链接

我将在特定的端口上添加这个只有LISTEN的单行程:

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

这将输出标准输出在<port_number>上运行的所有进程ID:

 fuser -n tcp <port_number> 

它也打印了一些东西给stderr,所以:

 fuser -n tcp <port_number> 2> /dev/null 

然后,我们可以将这些进程id提供给kill命令:

 sudo kill $(fuser -n tcp <port_number> 2> /dev/null) 

如果你做了很多,你也可以把它放在一个函数中:

 function killport() { sudo kill $(fuser -n tcp $1 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 

杀死进程。

kill -9 `fuser 8080/tcp|xargs -n 1` ,这个命令也会杀死在TCP 8080端口上侦听的进程

build立在@ 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报告的进程号码

在Windows中,它将是netstat -ano | grep "8080" netstat -ano | grep "8080" ,我们得到以下消息TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076

我们可以使用taskkill /F /PID 10076来杀死taskkill /F /PID 10076