在 Node.js 模块库中有很多好用的模块。接下来我们为大家介绍几种常用模块的使用: 序号 模块名 & 描述 1 OS…
杀死占用某个端口的进程 (Windows, Mac, Linux)
1. Windows
启动tomcat时候,控制台报错,发现是端口占用,于是寻找方法关闭对应的程序。
从网上找了好久,尝试之后,发现不行。开始自己尝试,终于,成功的将占用端口的进程杀掉。在此记录下过程(以8081端口为例):
第一步,根据端口号查找对应的进程号
netstat -ano | findstr 80 //列出进程极其占用的端口,且包含 80
结果如下:
发现 8081 端口被 PID(进程号)为 2000 的进程占用。
第二步,据进程号寻找进程名称
tasklist | findstr 2000
从任务管理器中查找该程序,手动杀死即可。
至此,已经完成。
但是我发现,在任务管理器中找不到该程序。只好从命令行杀死该程序了,命令如下:
taskkill -PID <进程号> -F //强制关闭某个进程
如此即可。
2. Mac
如何查找某个端口是否被占用:
我们查找下 3009 端口当前被谁占用
justcode@mac$ lsof -i:3009
结果显示:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 14937 justcode IPv4 0xc7e40c3b908f5c71 0t0 TCP *:pxc-ntfy (LISTEN)
可以看到一个node进程占用了 3009 端口.
如何关闭此进程:
justcode@mac$ kill -9 14937
ok,这样就结束了占用 3009 端口的进程.
3. Linux
1. 可以通过”netstat -anp” 来查看哪些端口被打开。
(注:加参数’-n’会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049, ftp->21,因此可以开启两个终端,一一对应一下程序所对应的端口号)
2. 然后可以通过”lsof -i:$PORT”查看应用该端口的程序($PORT指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务。
(注:有些端口通过netstat查不出来,更可靠的方法是”sudo nmap -sT -O localhost”)
3. 若要关闭某个端口,则可以:
1)通过iptables工具将该端口禁掉,如:
“sudo iptables -A INPUT -p tcp –dport $PORT -j DROP”
“sudo iptables -A OUTPUT -p tcp –dport $PORT -j DROP”
2)或者关掉对应的应用程序,则端口就自然关闭了,如:
“kill -9 PID” (PID:进程号)
如: 通过”netstat -anp | grep ssh”
有显示: tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh
则: “kill -9 7546”
本文:杀死占用某个端口的进程 (Windows, Mac, Linux)