附录:lsof工具的使用
最后更新于:2022-04-02 06:42:17
# 附录:lsof工具的使用
[TOC]
Linux平台提供了`lsof`工具可以查看某个进程打开的文件句柄。可以用于跟踪swoole的工作进程所有打开的socket、file、资源。
## 使用方法
~~~
lsof -p [进程ID]
~~~
## 运行结果
~~~
lsof -p 26821
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php 26821 htf cwd DIR 8,4 4096 5375979 /home/htf/workspace/swoole/examples
php 26821 htf rtd DIR 8,4 4096 2 /
php 26821 htf txt REG 8,4 24192400 6160666 /opt/php/php-5.6/bin/php
php 26821 htf DEL REG 0,5 7204965 /dev/zero
php 26821 htf DEL REG 0,5 7204960 /dev/zero
php 26821 htf DEL REG 0,5 7204958 /dev/zero
php 26821 htf DEL REG 0,5 7204957 /dev/zero
php 26821 htf DEL REG 0,5 7204945 /dev/zero
php 26821 htf mem REG 8,4 761912 6160770 /opt/php/php-5.6/lib/php/extensions/debug-zts-20131226/gd.so
php 26821 htf mem REG 8,4 2769230 2757968 /usr/local/lib/libcrypto.so.1.1
php 26821 htf mem REG 8,4 162632 6322346 /lib/x86_64-linux-gnu/ld-2.23.so
php 26821 htf DEL REG 0,5 7204959 /dev/zero
php 26821 htf 0u CHR 136,20 0t0 23 /dev/pts/20
php 26821 htf 1u CHR 136,20 0t0 23 /dev/pts/20
php 26821 htf 2u CHR 136,20 0t0 23 /dev/pts/20
php 26821 htf 3r CHR 1,9 0t0 11 /dev/urandom
php 26821 htf 4u IPv4 7204948 0t0 TCP *:9501 (LISTEN)
php 26821 htf 5u IPv4 7204949 0t0 UDP *:9502
php 26821 htf 6u IPv6 7204950 0t0 TCP *:9503 (LISTEN)
php 26821 htf 7u IPv6 7204951 0t0 UDP *:9504
php 26821 htf 8u IPv4 7204952 0t0 TCP localhost:8000 (LISTEN)
php 26821 htf 9u unix 0x0000000000000000 0t0 7204953 type=DGRAM
php 26821 htf 10u unix 0x0000000000000000 0t0 7204954 type=DGRAM
php 26821 htf 11u unix 0x0000000000000000 0t0 7204955 type=DGRAM
php 26821 htf 12u unix 0x0000000000000000 0t0 7204956 type=DGRAM
php 26821 htf 13u a_inode 0,11 0 9043 [eventfd]
php 26821 htf 14u unix 0x0000000000000000 0t0 7204961 type=DGRAM
php 26821 htf 15u unix 0x0000000000000000 0t0 7204962 type=DGRAM
php 26821 htf 16u unix 0x0000000000000000 0t0 7204963 type=DGRAM
php 26821 htf 17u unix 0x0000000000000000 0t0 7204964 type=DGRAM
php 26821 htf 18u a_inode 0,11 0 9043 [eventpoll]
php 26821 htf 19u a_inode 0,11 0 9043 [signalfd]
php 26821 htf 20u a_inode 0,11 0 9043 [eventpoll]
php 26821 htf 22u IPv4 7452776 0t0 TCP localhost:9501->localhost:59056 (ESTABLISHED)
~~~
* so文件是进程加载的动态连接库
* IPv4/IPv6 TCP (LISTEN) 是服务器监听的端口
* UDP 是服务器监听的UDP端口
* unix type=DGRAM 时是进程创建的UnixSocket管道
* IPv4 (ESTABLISHED) 表示连接到服务器的TCP客户端,包含了客户端的IP和PORT,以及状态(ESTABLISHED)
* 9u / 10u 表示该文件句柄的fd值(文件描述符)
* 其他更多信息可以参考lsof的手册
';