查看和解除占用 (Win & netstat)
使用
cmd
命令: netstat, findstr, tasklist, taskkill
## 查看端口 (a:all 展示所有进程 o: 显示 pid n:num 以数字展示)
netstat -aon | findstr "8080"
## 查看端口进程名 (1230 是你查到的 pid)
tasklist | findstr "1230"
## 终结进程 (1230 是你查到的 pid)
taskkill /PID 1230 /F
- 强力版:
ntsd
是一个用户态进程调试工具, 从 Windows 2000 就开始被附随在 System32 目录下. 它能够结束除System
,smss.exe
,csrss.exe
,lsass.exe
和各种rootkit
程序外的所有程序.
但在 Windows Vista 及以上版本中不含ntsd
必须手动下载至电脑中才可使用
ntsd -c q -p pid 1230
- Win 下如何获取 help
netstat /?
taskkill /?
tasklist /?
查看和解除占用 (Linux/Unix & lsof & netstat)
使用
bash / shell
命令: lsof, kill, netstat
- 方法一
lsof -i:8080 #展示8080端口
## 关闭占用, 1230 是你查到的pid
kill -9 1230 #-9只是参数, 终结占用进程
- 方法二
netstat -tunlp | grep 8080 # 展示当前所有tcp端口 | 展示8080端口
## 关闭占用, 1230 是你查到的pid
kill -9 1230 #-9只是参数, 终结占用进程
关于 Linux 下命令补充:
losf
命令的参数
losf: list open files
> -i Lists IP sockets.
> -n Do not resolve hostnames (no DNS).
> -P Do not resolve port names (list port number instead of its name).
# One can also list Unix Sockets by using lsof -U.
lsof -nPi | grep sendmail # 记得参数i需要放在最后,因为它(可能)会接收入参
> sendmail 31649 root 4u IPv4 521738 TCP *:25 (LISTEN)
> From the above one can see that "sendmail" is listening on its standard port of "25".
netstat
命令的参数
netstat -tunlp
# 常用
- t (tcp)仅显示tcp相关选项
- u (udp)仅显示udp相关选项
- n 拒绝显示别名,能显示数字的全部转化成数字。
- l 仅列出有在 Listen (监听) 的服務状态
- p 显示建立相关链接的程序名
# 其他
- a (all)显示所有选项,默认不显示LISTEN相关
- r 显示路由信息,路由表
- e 显示扩展信息,例如uid等
- s 按各个协议进行统计
- c 每隔一个固定时间,执行该netstat命令。
kill
SIGHUP
:1号信号,Hangup detected on controlling terminal or death of controlling process(在控制终端上 挂起信号 或 结束进程)
SIGINT
:2号信号,Interrupt from keyboard(键盘输入中断,ctrl + c )
SIGQUIT
:3号信号,Quit from keyboard(键盘输入退出,ctrl+ | )
SIGABRT
:6号信号,Abort signal from abort(3)(非正常终止,double free)
SIGKILL
:9号信号,Kill signal(杀死进程信号,linux规定进程不可以忽略这个信号)
显示 Java 程序运行的端口
netstat -anp | grep java