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

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


当前回答

kill -9 ' fuser 8080/tcp|xargs -n 1 ',该命令同时关闭监听8080端口的tcp连接进程

其他回答

可以使用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

这个方法对我很管用。 这是原文的链接:link

你可以知道系统中运行的所有端口的列表及其详细信息(pid,地址等):

netstat -tulpn

您可以通过在以下命令中提供端口号来了解特定端口号的详细信息:

sudo netstat -lutnp | grep -w '{port_number}'

示例:sudo netstat -lutnp | grep -w '8080' 详情如下:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

如果你想使用pid来终止一个进程,那么:kill -9 {pid}

fuser -n TCP {port_number}

如果您无法访问任何sudo,请使用sudo。

要知道某个端口上运行的服务的pid:

netstat -tulnap | grep :*port_num*

您将得到该过程的描述。现在使用kill或kill -9 pid。容易死亡。

e.g

Netstat -ap | grep:8080

tcp6       0      0 :::8080       :::*    LISTEN      1880/java 

Now:

kill -9 1880

记住以root用户运行所有命令

kill -9 ' fuser 8080/tcp|xargs -n 1 ',该命令同时关闭监听8080端口的tcp连接进程

Lsof -i tcp:8000 该命令列出8000端口上运行的进程信息 kill -9 [PID] 该命令终止进程