我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
当前回答
执行如下命令,查询到8080端口号PID:
Sudo lsof -t -i:8080
你现在可以使用以下命令轻松地杀死你的PID:
须藤杀-9
您可以使用一个命令来杀死特定端口上的进程,使用以下命令:
Sudo kill -9 $(Sudo lsof -t:8000)
其他回答
要知道某个端口上运行的服务的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用户运行所有命令
这个fuser 8080/tcp将打印该端口绑定进程的PID。
这个fuser -k 8080/tcp会终止这个进程。
仅适用于Linux。更通用的是使用lsof -i4(或IPv6的6)。
使用这个脚本,它比其他选项更友好,检查端口是否实际在使用。
使用方法:openport 1234
openport() {
# sed = second line https://stackoverflow.com/a/1429628/152711
# awk = second word https://unix.stackexchange.com/a/174038
processId=$(lsof -i tcp:$1 | sed -n 2p | awk '{print $2}')
if [ ! -z "$processId" ] # Non-null https://www.cyberciti.biz/faq/bash-shell-find-out-if-a-variable-has-null-value-or-not/
then
echo Killing $processId
kill -9 $processId
else
echo No process found
fi
}
选项1在特定端口上只杀死LISTEN的一行程序:
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
选项2如果你安装了npm,你也可以运行
npx kill-port 3000
执行如下命令,查询到8080端口号PID:
Sudo lsof -t -i:8080
你现在可以使用以下命令轻松地杀死你的PID:
须藤杀-9
您可以使用一个命令来杀死特定端口上的进程,使用以下命令:
Sudo kill -9 $(Sudo lsof -t:8000)