我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
当前回答
要知道某个端口上运行的服务的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连接进程
选择端口号并应用netstat命令中的grep,如下所示
netstat -ap | grep :7070
控制台输出
tcp 0 0:::7070:::* LISTEN 3332/java
根据PID(进程标识号)终止服务
kill -9 3332
输出所有在<port_number>上运行的进程id:
fuser -n tcp <port_number>
它还输出一些东西到stderr,所以:
fuser -n tcp <port_number> 2> /dev/null
然后我们可以将这些进程id提供给kill命令:
sudo kill $(fuser -n tcp <port_number> 2> /dev/null)
如果你经常这样做,你也可以把它放在一个函数中:
function killport() {
sudo kill $(fuser -n tcp $1 2> /dev/null)
}
只有以下命令对我有用:
ps -aux | grep 8000
然后:
sudo kill <PID>
杀死特定端口上所有进程的最佳方法;
kill -9 $(sudo lsof -t -i:8080)