| 《使用lsof工具查看打开的文件和socket》要点:本文介绍了使用lsof工具查看打开的文件和socket,希望对您有用。如果有疑问,可以联系我们。
 
 其实和fuser类似的,lsof使用的场景通常都是当你试图mount一个文件系统的时候,发现设备繁忙ibusybox:~ ibusybox$ umount /mnt
 umount : /mnt: device is busy
 这时候就可以用lsof查看具体是什么进程在访问/mnt用法lsof mountpoint
 ibusybox:~ ibusybox$ lsof /mnt
 COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
 Dock      121 ibusybox   21r   DIR    1,2      612 526637 /mnt
 就可以看到具体pid和用户之类的信息相反如果想查看进程访问了哪些文件,加载了哪些库,或者是socket连接等等,就可以反过来用pid查看
 用法ls -p pid
 ibusybox:~ ibusybox$ lsof -p 121
 COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
 Dock      121 ibusybox   21r   DIR    1,2      612 526637 /mnt
 另外lsof也支持通过进程名来查看相关信息
 用法lsof -c processname
 ibusybox:~ ibusybox$ lsof -c Dock
 COMMAND PID     USER   FD     TYPE             DEVICE  SIZE/OFF    NODE NAME
 Dock    121 ibusybox  cwd      DIR                1,2      1088       2 /
 Dock    121 ibusybox  txt      REG                1,2   3091616  879965 /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock
 如果你是root  想窥视一下其他兄弟在干啥 也可以通过lsof先看看tty设备访问的情况ibusybox:~ ibusybox$ lsof /dev/ttys000
 COMMAND PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 bash    403 ibusybox    0u   CHR   16,0 0t326502  623 /dev/ttys000
 bash    403 ibusybox    1u   CHR   16,0 0t326502  623 /dev/ttys000
 bash    403 ibusybox    2u   CHR   16,0 0t326502  623 /dev/ttys000
 然后再lsof -u username 就可以查看该用户在访问啥就一目了然了
 ibusybox:~ ibusybox$ lsof -u ibusybox
 Safari    192 ibusybox  txt      REG                1,2     50204 1673416 /private/var/folders/r9/kfjqnst15tb0ss2hk_4vk8zh0000gp/C/mds/mdsDirectory.db
 Safari    192 ibusybox  txt      REG                1,2     32768 1673264 /private/var/db/mds/messages/se_SecurityMessages
 Safari    192 ibusybox  txt      REG                1,2      2815  773626 /Applications/Safari.app/Contents/Resources/CertSecureStretch.png
 通过lsof -i 也可以查看已经占用的socket端口,lsof -i :port可以直接查看某指定端口ibusybox:~ ibusybox$ lsof -i
 COMMAND   PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
 SystemUIS 123 ibusybox    5u  IPv4 0x238afe528c39b56d      0t0  UDP *:*
 NetworkBr 130 ibusybox    5u  IPv4 0x238afe528c39b6f5      0t0  UDP *:*
 Safari        206 ibusybox   10u  IPv4 0x238afe528e701e75      0t0  UDP *:terabase
 ubd       237 ibusybox   17u  IPv4 0x238afe52901193e5      0t0  TCP *:23456 (LISTEN)
 lsof是一个复杂而非常灵活的工具,可以man一下了解一下更多的细节 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |