日期:2014-05-16  浏览次数:20647 次

Linux_查找指定端口被哪个进程占用_lsof介绍_netstat

Linux_查找指定端口被哪个进程占用_lsof介绍

用lsof命令来解决:

lijg@lijg-pc:~/workruby/t800$ lsof -i:9292

COMMAND ?PID USER ? FD ? TYPE ?DEVICE SIZE/OFF NODE NAME
ruby ? ?2693 lijg ? ?3w ?IPv4 1104539 ? ? ?0t0 ?TCP *:9292 (LISTEN)
lijg@lijg-pc:~/workruby/t800$ ps -ef | grep 2693
lijg ? ? ?2693 ?2586 ?0 11:22 pts/1 ? ?00:00:00 /home/lijg/workruby/t800/lijungang_use/practice/rack_practice/hello_rack.rb

这里启动WEBRick报错后,居然进程没有自动关闭!

用netstat来查看
lijg@lijg-pc:~/workruby/t800$ netstat -anp | head
(Not all processes could be identified, non-owned process info
?will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address ? ? ? ? ? Foreign Address ? ? ? ? State ? ? ? PID/Program name
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:28017 ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?- ? ? ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:22 ? ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?- ? ? ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:631 ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?- ? ? ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:27017 ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?- ? ? ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 127.0.0.1:3306 ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?- ? ? ? ? ? ? ??
tcp ? ? ? ?0 ? ? ?0 0.0.0.0:9292 ? ? ? ? ? ?0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? ?2866/hello_rack.rb
tcp ? ? ? ?0 ? ? ?0 192.168.2.63:50129 ? ? ?123.125.114.81:80 ? ? ? ESTABLISHED 28667/chrome ? ?
tcp ? ? ? ?0 ? ? ?0 192.168.2.63:44365 ? ? ?112.90.142.174:80 ? ? ? ESTABLISHED 29780/libgcflashpla

______________________________________________________________________________
______________________________________________________________________________

另外,看见一篇关于lsof的介绍,

http://xinos.cn/net/tools/2009/06/lsof.shtml,当学习了。

?

?

lsof简介
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接 和硬件。所以如传输控制协议 (tcp) 和用户数据报协议 (udp) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因 为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。?
lsof使用
lsof输出信息含义
在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。?
command??? pid????? user?? fd????? type???? device???? size?????? node????? name
init?????? 1???????? root cwd????? dir?????? 3,3?????? 1024?????? 2???????? /
init?????? 1???????? root rtd????? dir?????? 3,3?????? 1024?????? 2???????? /
init?????? 1???????? root txt????? reg?????? 3,3?????? 38432????? 1763452 /sbin/init
init?????? 1???????? root mem????? reg?????? 3,3?????? 106114???? 1091620 /lib/libdl-2.6.so
init?????? 1???????? root mem????? reg?????? 3,3?????? 7560696??? 1091614 /lib/libc-2.6.so
init?????? 1???????? root mem????? reg?????? 3,3?????? 79460????? 1091669 /lib/libselinux.so.1
init?????? 1???????? root mem????? reg?????? 3,3?????? 223280???? 1091668 /lib/libsepol.so.1
init?????? 1???????? root mem????? reg?????? 3,3?????? 564136???? 1091607 /lib/ld-2.6.so
init?????? 1???????? root 10u????? fifo????? 0,15????????????????? 1309???? /dev/initctl
每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:?
command:进程的名称
pid:进程标识符
user:进程所有者
fd:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
type:文件类型,如dir、reg等
device:指定磁盘的名称
size:文件的大小
node:索