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

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


当前回答

Git Bash的其他方式:

stopProcessByPortNumber() {
port=":${1}"
portStrLine="$(netstat -ano | findstr LISTENING | findstr $port)"
processId="$(grep -oP '(\d+)(?!.*\d)' <<< $portStrLine)"
echo $processId
taskkill -PID $processId -F
}

其他回答

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

Sudo lsof -t -i:8080

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

须藤杀-9

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

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

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

netstat -ap | grep :7070

控制台输出

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

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

kill -9 3332

如果您想终止运行在端口号8080上的进程,那么首先需要找到8080端口进程标识号(PID),然后终止它。执行如下命令,查询到8080端口号PID:

sudo lsof -t -i:8080

在这里,

Sudo -命令询问管理员权限(用户id和密码)。 lsof -文件列表(也用于列出相关进程) -t -只显示进程ID -i -只显示Internet连接相关进程 :8080 -只显示该端口号下的进程

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

sudo kill -9 <PID>

在这里,

Kill -终止进程的命令 -9 -强力

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

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

欲了解更多信息,请参见以下链接 如何杀死一个进程在特定的端口上的linux

杀死特定端口上所有进程的最佳方法;

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

你可以知道系统中运行的所有端口的列表及其详细信息(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。