s11.1 lsof:查看进程打开的文件
生活随笔
收集整理的這篇文章主要介紹了
s11.1 lsof:查看进程打开的文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
功能說明
lsof 全名為list open files,也就是列舉系統中已經被打開的文件,通過lsof命令,就可以根據文件找到對應的進程信息,也可以根據進程信息找到進程打開的文件。【語法格式】
lsof?? ?[option] lsof?? ?[選項] 參數選項 ?? ??? ?解釋說明 -c<進程名> ?? ?顯示指定的進程名所打開的文件 -p<進程號>? ? ?顯示指定的進程號所打開的文件 -i?? ??? ??? ?通過監聽指定的協議、端-和主機等信息,顯示符合條件的進程信息 -u?? ??? ??? ?顯示指定用戶使用的文件 -U?? ??? ??? ?顯示所有socket文件范例11-1:顯示使用文件的進程。
[root@lewen ~]# lsof /var/log/messages COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME abrt-watc 8718 root 4r REG 253,0 404668 522404 /var/log/messages rsyslogd 10046 root 6w REG 253,0 404668 522404 /var/log/messages如果想知道某個特定的文件是由哪個進程在使用,就可以通過“lsof文件名”的方式 來得到。從上面的輸出可以得知,/var/log/messages文件是由rsyslogd進程在使用。 輸出中每列的含義具體如下。 -COMMAND:命令,進程的名稱。 -PID:進程號。 -USER:進程的所有者。 -FD:文件描述符,它又包含如下內容。0:表示標準輸出。1:表示標準輸入。2:表示標準錯誤。u:表示該文件被打開并處于讀取/寫人模式。r:表示該文件被打開并處于只讀模式。w:表示該文件被打開并處于寫人模式。 -TYPE:文件類型,REG(regular)為普通文件。 -DEVICE:指定磁盤的名稱。 -SIZE/OFF:文件的大小。 -NODE:索引節點。 -NAME:文件名稱。范例11-2:顯示指定進程所打開的文件。
[root@lewen ~]# lsof -c rsyslog COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 10046 root cwd DIR 253,0 224 64 / rsyslogd 10046 root rtd DIR 253,0 224 64 / rsyslogd 10046 root txt REG 253,0 664080 522402 /usr/sbin/rsyslogd ...范例11-3:顯示指定進程號所打開的文件。
[root@lewen ~]# lsof -p 10046 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsyslogd 10046 root cwd DIR 253,0 224 64 / rsyslogd 10046 root rtd DIR 253,0 224 64 / rsyslogd 10046 root txt REG 253,0 664080 522402 /usr/sbin/rsyslogd ...范例11-4:監聽指定的協議、端口和主機等信息,顯示符合條件的進程信息。
在講解范例之前,我們先來看看相應的語法格式: lsof -i [46] [protocol][@8hostname][:service|port] 其中各項的含義如下。- 46:4代表IPv4,6代表IPv6。
- protocol:傳輸協議,可以是TCP或UDP。
- hostname:主機名稱或者IP地址。
- service:進程的服務名,例如NFS、SSH和FTP等。
- port:系統中與服務對應的端口號。例如HTTP服務默認對應的端口號為80,SS日服務默認對應的端口號為22。了解了語法格式之后,再來看看范例的解答。
范例11-5:顯示指定用戶使用的文件。
[lewen@k8s-node1 ~]$ lsof -u lewen COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 11081 lewen cwd DIR 253,0 62 33997200 /home/lewen bash 11081 lewen rtd DIR 253,0 224 64 / bash 11081 lewen txt REG 253,0 964608 50333656 /usr/bin/bash bash 11081 lewen mem REG 253,0 61624 34664 /usr/lib64/libnss_files-2.17.so bash 11081 lewen mem REG 253,0 106075056 50334298 /usr/lib/locale/locale-archive bash 11081 lewen mem REG 253,0 2151672 34646 /usr/lib64/libc-2.17.so bash 11081 lewen mem REG 253,0 19288 34652 /usr/lib64/libdl-2.17.so范例11-6:顯示所有socket文件。
[root@k8s-node1 ~]# lsof -U COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 12u unix 0xffff964f7656e800 0t0 25117 /run/systemd/private systemd 1 root 22u unix 0xffff964f7656fc00 0t0 25169 /run/lvm/lvmpolld.socket systemd 1 root 23u unix 0xffff9650714f8400 0t0 8992 /run/systemd/notify systemd 1 root 24u unix 0xffff9650714f8000 0t0 8994 /run/systemd/cgroups-agent總結
以上是生活随笔為你收集整理的s11.1 lsof:查看进程打开的文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: s5-2 Cpu调度算法
- 下一篇: 11.5 vmstat:虚拟内存统计