netstat -tulnap
向我展示了正在使用的端口。如何在Linux中释放端口?
答案 0 :(得分:190)
正如其他人所说,你必须杀死正在侦听该端口的所有进程。最简单的方法是使用fuser(1)命令。例如,要查看在端口80上侦听http请求的所有进程(以root身份运行或使用sudo):
# fuser 80/tcp
如果你想杀死它们,那么只需添加-k选项。
答案 1 :(得分:63)
要在Linux下使用命令
中杀死特定端口sudo fuser -k Port_Number/tcp
将Port_Number替换为您的被占用端口。
答案 2 :(得分:12)
您可以使用tcpkill
(dsniff
包的一部分)来终止所需端口上的连接:
sudo tcpkill -9 port PORT_NUMBER
答案 3 :(得分:9)
假设您是root用户,"netstat --programs"
命令将为您提供进程信息。然后你将不得不杀死“冒犯”的过程,这可能会再次启动只是为了惹恼你: - )。
你到底想要实现的目标是什么?解决方案将根据持有这些端口的流程而有所不同。
答案 4 :(得分:7)
终止正在侦听相关端口的进程。我相信netstat会向您显示流程ID。
答案 5 :(得分:7)
在终端类型中:
netstat -anp|grep "port_number"
它将显示端口详细信息。转到最后一栏。 它将采用这种格式。例如: - PID / java
然后执行:
kill -9 PID. Worked on Centos5
对于MAC:
lsof -n -i :'port-number' | grep LISTEN
示例回复:
java 4744 (PID) test 364u IP0 asdasdasda 0t0 TCP *:port-number (LISTEN)
然后执行:
kill -9 PID
使用Macbook
答案 6 :(得分:2)
如果你真的想立即杀死一个进程,你发送一个KILL信号而不是一个TERM信号(后者是一个停止的请求,第一个将立即生效而不进行任何清理)。这很容易做到:
kill -KILL <pid>
请注意,根据您正在停止的程序,执行此操作时其状态可能会严重损坏。您通常只想在正常终止不起作用时发送KILL信号。我想知道你试图解决的根本问题是什么,以及杀人是否是正确的解决方案。
答案 7 :(得分:0)
我认为唯一的办法就是停止打开港口的过程。
答案 8 :(得分:0)
要检查所有端口
netstat -lnp
要关闭打开的端口:
fuser -k port_no / tcp
示例:
定影器-k 8080 / tcp 两者都可以根据需要使用sudo。
答案 9 :(得分:-5)
sudo killall -9“流程名称”
答案 10 :(得分:-13)
关闭计算机总是会让我失去这个过程。