我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
当前回答
列出监听端口8080的所有进程:
lsof -i:8080
杀死任何监听8080端口的进程:
kill $(lsof -t -i:8080)
或者更激烈:
kill -9 $(lsof -t -i:8080)
(-9对应SIGKILL -立即终止/硬杀信号:参见kill信号列表和kill命令中-9选项的用途是什么?如果没有指定要终止的信号,则发送TERM信号,即-15或软终止,这有时不足以终止进程。
其他回答
首先检查进程netstat -lt 检查进程id fuser <端口号>/tcp Kill <进程id>
要知道某个端口上运行的服务的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用户运行所有命令
你可以知道系统中运行的所有端口的列表及其详细信息(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。
列出监听端口8080的所有进程:
lsof -i:8080
杀死任何监听8080端口的进程:
kill $(lsof -t -i:8080)
或者更激烈:
kill -9 $(lsof -t -i:8080)
(-9对应SIGKILL -立即终止/硬杀信号:参见kill信号列表和kill命令中-9选项的用途是什么?如果没有指定要终止的信号,则发送TERM信号,即-15或软终止,这有时不足以终止进程。
这个fuser 8080/tcp将打印该端口绑定进程的PID。
这个fuser -k 8080/tcp会终止这个进程。
仅适用于Linux。更通用的是使用lsof -i4(或IPv6的6)。