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

我想终止在8080上运行的tomcat进程。我首先想要在特定端口(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。

其他回答

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

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

lsof -i:8080

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

kill $(lsof -t -i:8080)

或者更激烈:

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

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

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

kill -9 $(sudo lsof -t -i:8080)
sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp

结果: 80/tcp: 1858 1867 1868 1869 1871

逐个杀死进程

杀死-9 1858

获取任务的PID并终止它。

lsof -ti:8080 | xargs kill