当前位置: 首页 > Linux

在Linux

时间:2023-04-07 01:25:57 Linux

Mac下使用lsof命令查看某个端口的占用情况并杀死进程.0.0:4000/。按Ctrl+C停止。此时4000端口被Hexo占用。如果要查看4000端口占用情况,使用:sh-3.2#lsof-i:4000COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEQQ1942tongkun14uIPv40x1d28bfd60907da570t0UDP*:terabasenode2476root12uIPv40x1d1d907da570t0UDP*:terabasenode2476root12uIPv40bd6bf0TCP:terabase(LISTEN)可以看出4000端口正在运行node(进程名)程序,如果要kill进程号为2476的进程,执行:sh-3.2#kill-92476lsof引入:lsof(listopenfile)是一个列出当前系统打开文件的工具。在linux/unix系统中,一切都以文件的形式存在,通过文件访问的不仅是一般的数据,还有网络连接和硬件。所以如传输控制协议(TCP)和用户数据报协议(UDP)套接字等,系统在后台为应用程序分配一个文件描述符,不管文件是什么性质,文件描述符都在应用程序和基本操作系统之间提供了一个通用接口。lsof输入信息包含义,ps:sh-3.2#lsof-i:80COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEnginx1287root9uIPv40x1d28bfd6090094bf0t0TCP*:http(LISTEN)nginx1288nobody9uIPv4b0x1d402TCP:(听)vmnet-nat2317root7Uipv40x1d28bfd61ec2d9f0T0TCP192.168.0.22:60264->.79.231:http(ESTABLISHED)vmnet-nat2317root18uIPv40x1d28bfd61ea914bf0t0TCP192.168.0.22:60927->123.126.51.18:http(CLOSE_WAIT)vmnet-nat2317root29uIPv40x1d28bfd609008bdf0t0TCP192.168.0.22:60964->215.255.72.118.adsl-pool.sx.cn:http(colles_wait)vmnet-nat2317root30uipv4ipv40x1d28bfd61eaae85f0t0tcp192.168.0.0.0.0.22:60965-11.11.11.211.211.202.3512.1102.35:http(clote_http)P192.168.0.22:60963->123.126.51.33:http(CLOSE_WAIT)表示每行打开一个文件。如果不指定条件,则显示该进程打开的所有文件。lsop输出的每一列信息如下:COMMAND:进程名PID:进程标识符USER:进程所有者FD:文件描述符,应用程序通过文件描述符来识别文件。如cwd、txt等TYPE:文件类型,如DIR、REG等DEVICE:指定磁盘的名称SIZE:文件的大小NODE:索引节点(文件在磁盘上的标识)NAME:打开文件的确切名称where在FD列文件描述符cwd值表示应用程序当前的工作目录,也就是应用程序启动的目录,除非它自己改变了这个目录,txt类型的文件是程序代码,例如应用程序二进制文件本身或共享库,如上表中的/sbin/init程序。其次,该值表示应用程序的文件描述符,它是打开文件时返回的一个整数。u表示文件处于打开和读写模式常用参数列表:lsoffilename显示打开指定文件的所有进程lsof-a表示两个参数都满足时结果必须满足lsof-cstring显示COMMAND列包含指定字符进程所有打开的文件lsof-uusername显示用户进程打开的文件lsof-ggid显示gid的进程状态lsof+d/DIR/显示目录下进程打开的文件lsof+D/DIR/同上,但是会搜索目录下的所有目录,时间比较长默认不加-n参数lsof-i用于显示条件lsof-i46@hostname|hostaddr46–>IPv4或IPv6协议–>TCP或UDPhostname–>Internet主机名hostaddr–>IPv4地址服务–>服务name(可以多个)portin/etc/service–>portnumber(可以多个)查看root用户进程打开的txt类型的文件:sh-3.2#lsof-a-uroot-dtxtCOMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMElaunchd1roottxtREG1,431728015338828/sbin/launchdlaunchd1roottxtREG1,463833615339947/usr/lib/dyldlaunchd1roottxtREG1,4488952297423/private/var/db/dyld/dyld_shared_cache_x86_64syslogd45roottxtREG1,414273615341124/usr/sbin/syslogdsyslogd45根txtREG1,463833615339947/usr/lib/dyldsyslogd45根txtREG1,448895229423197852/private/var/db/dyld/dyld_shared_cache_x86_64UserEvent46根txtREG1,435456/3us/35456/354561......**lsof的用处很多,这里就不一一列举了,以后会继续介绍。..