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

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


当前回答

获取任务的PID并终止它。

lsof -ti:8080 | xargs kill

其他回答

sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp

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

逐个杀死进程

杀死-9 1858

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

fuser -k 3000/tcp

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

service docker restart

你的问题解决了。

使用命令

 sudo netstat -plten |grep java

使用grep Java作为tomcat使用Java作为他们的进程。

它将显示带有端口号和进程id的进程列表

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

“/java”前面的数字是进程号。现在使用kill命令终止进程

kill -9 16085

-9表示进程将被强制终止。

一个班轮,节省时间

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

如果端口上的服务没有响应,如何杀死进程

timeout 1 telnet localhost 8080 2>&1 | if grep -q 'Unable'; then sudo kill -9 $(sudo lsof -t -i:8080); fi

它的作用

启动“timeout”一秒,使telnet退出 ' 2>&1 | '管道错误消息,没有退出 如果错误消息包含'Unable',则运行代码杀死锁定端口8080的进程

这可以放在一个文件中,并从'sudo crontab'定期运行