我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。

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


当前回答

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

这个fuser -k 8080/tcp会终止这个进程。

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

其他回答

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

我们可以使用taskkill /F /PID 10076来终止PID

输出所有在<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)
}

选择端口号并应用netstat命令中的grep,如下所示

netstat -ap | grep :7070

控制台输出

tcp 0 0:::7070:::* LISTEN 3332/java

根据PID(进程标识号)终止服务

kill -9 3332

Linux:首先,如果你知道端口,你可以找到这个命令的PID:

netstat -tulpn 

例子:-

 Local Address  Foreign Address  State    PID/Program name

  :::3000       :::*             LISTEN    15986/node 

然后进行终止过程。执行如下命令:

kill -9 PID

Expample: -

杀死-9 15986

执行如下命令,查询到8080端口号PID:

Sudo lsof -t -i:8080

你现在可以使用以下命令轻松地杀死你的PID:

须藤杀-9

您可以使用一个命令来杀死特定端口上的进程,使用以下命令:

Sudo kill -9 $(Sudo lsof -t:8000)