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

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


当前回答

一个班轮,节省时间

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

此处解释:使用lsof和kill的组合

root@localhost:~# lsof -i tcp:8080
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    23672 sine  238u  IPv6 3028222      0t0  TCP localhost:http-alt (LISTEN)

选择pid并使用kill

kill 23672

其他回答

选项1在特定端口上只杀死LISTEN的一行程序:

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

选项2如果你安装了npm,你也可以运行

npx kill-port 3000

Linux:如果你知道端口,你可以使用这个命令:

netstat -plten | grep LISTEN | grep 8080

AIX:

netstat -Aan | grep LISTEN | grep 8080

然后使用第一列(例如:f100050000b05bb8)并运行以下命令:

rmsock f100050000b05bb8 tcpcb

杀死进程。

这在mac中很管用

sudo kill -9 $(netstat -vnap tcp | grep PORT | awk -F " " '{print $9}')

获取任务的PID并终止它。

lsof -ti:8080 | xargs kill

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

lsof -i:8080

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

kill $(lsof -t -i:8080)

或者更激烈:

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

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