查找linux系统下的端口被占用进程的两种方法
来源:互联网 发布:淘宝分期买手机靠谱吗 编辑:程序博客网 时间:2024/06/07 10:56
在linux下开发时,你的软件可能要使用某一个端口,或者想查找某一个端口是否被占用。需要怎么做呢??这的确是一个比较烦恼的问题,我也此为这个苦恼过。但是通过查找man手册,还是同事的交流。总结出来两种方法:
1)使用lsof命令
lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。具体方法:
lsof -i :port_number |grep "\(LISTEN\)"
-i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否有程序占用了oracle的监听端口1521,就可以使用lsof -i :1521 |grep "\(LISTEN\)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。
如果只有losf -i :port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep "\(LISTEN\)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。
2)使用netstat 命令
大家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat -an 的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者baidu一下吧。
执行man netstat命令,你会发现netstat 提供了'-p'的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然是进程id了,process_name是进程的命令,中间以'/'号分隔。
和上面的原因一样,我们只查找listen的端口,netstat 给我们提供了-l的选项,这个选项不是默认的选项。
下面以1521端口来看怎么查找到该程序,我们使用下面的命令:
netstat -lnp|awk 'BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}'
在这里使用awk来匹配第4个字段的模式是为了避免误判。
小结:许多问题只要多读读man手册就可以搞定了,要想成长起来就自己多看看man手册。
- 查找linux系统下的端口被占用进程的两种方法
- 查找linux系统下的端口被占用进程的两种方法
- 查找linux系统下的端口被占用进程的两种方法
- 查找linux系统下的端口被占用进程的两种方法
- 查找linux系统下的端口被占用进程的两种方法
- 查找linux系统下的端口被占用进程的两种方法
- Linux 查找被占端口的进程
- 查找Windows端口被占用的程序、进程
- linux下端口被占用的解决方法
- 查找IIS的80端口被占方法
- windows下查看端口被占用的进程的情况
- 80端口被占用,杀死该进程的方法
- Linux下Tomcat的启动、关闭、杀死进程,解决tomcat端口被占用
- Linux 一条命令删除某端口被占用的进程
- 查找端口被占用的dos命令
- linux下tomcat的80端口被占用的解决办法
- linux下tomcat的80端口被占用的解决办法
- 如何查询被占用端口的进程
- 如何在15分钟内掌握JavaScript面向对象编程
- 时钟系统
- qsort多线程下core dump分析
- Jquery选择器总结
- Java RPC通信机制之RMI
- 查找linux系统下的端口被占用进程的两种方法
- iphone模拟器目录
- java中main函数中的变量定义及其使用
- TeX-标题和章节
- 建立一个php页面,显示php的一些功能,并加以说明(php上传文件)
- T(n) = 25T(n/5)+n^2的时间复杂度
- ASCII文件与二进制文件
- 增强插件第二波——增强型文件过滤插件
- 【整】char、varchar、nchar、nvarchar的区别