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

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


当前回答

像这样试试,

 sudo fuser -n tcp -k 8080

其他回答

列出监听端口8080的所有进程:

lsof -i:8080

杀死任何监听8080端口的进程:

kill $(lsof -t -i:8080)

或者更激烈:

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

(-9对应SIGKILL -立即终止/硬杀信号:参见kill信号列表和kill命令中-9选项的用途是什么?如果没有指定要终止的信号,则发送TERM信号,即-15或软终止,这有时不足以终止进程。

首先你需要做的是运行(替换为你的端口号):

fuser -k 3000/tcp

这将释放端口。运行上述命令后,执行以下命令:

service docker restart

你的问题解决了。

获取任务的PID并终止它。

lsof -ti:8080 | xargs kill

Git Bash的其他方式:

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

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