lsof命令

通过 ps 命令查询到系统中所有的进程, 通过lsof 命令可以知道这个进程到底在调用哪些文件。lsof 命令格式如下:

[root@localhost ~]# lsof [选项]

选项:

  • -c 字符串: 只列出以字符串开头的进程打开的文件;
  • +d 目录名: 列出某个目录中所有被进程调用的文件;
  • -u 用户名: 只列出某个用户的进程打开的文件;
  • -p pid: 列出某个 PID 进程打开的文件;

查询系统中所有进程调用的文件

[root@localhost ~]# lsof |more
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd root cwd DIR , /
systemd root rtd DIR , /
systemd root txt REG , /usr/lib/systemd/systemd
systemd root mem REG , /usr/lib64/libuuid.so.1.3.

按照 PID,从 1 号进程开始列出系统中所有的进程正在调用的文件名。

查询某个文件被哪个进程调用

[root@localhost ~]# lsof /usr/lib/systemd/systemd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd root txt REG , /usr/lib/systemd/systemd

lsof 命令也可以查询某个文件被哪个进程调用。

查询某个目录下所有的文件是被哪些进程调用的

[root@localhost ~]# lsof +d /usr/lib
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpc.idmap root mem REG , 279930 /usr/lib/libnfsidmap.so.0.3.
rpc.idmap root mem REG , 276696 /usr/lib/libevent-1.4.so.2.1.
avahi-dae avahi mem REG , 271310 /usr/lib/libavahi-common.so.3.5.
avahi-dae avahi mem REG , 283188 /usr/lib/libdaemon.so.0.5.
avahi-dae avahi mem REG , 268396 /usr/lib/libavahi-core.so.6.0.
avahi-dae avahi mem REG , 271310 /usr/lib/libavahi-common.so.3.5.
avahi-dae avahi mem REG , 283188 /usr/lib/libdaemon.so.0.5.
avahi-dae avahi mem REG , 268396 /usr/lib/libavahi-core.so.6.0.
cupsd root mem REG , 270210 /usr/lib/libtasn1.so.3.1.

使用“+d”选项可以搜索某个目录下所有的文件,查看到底哪个文件被哪个进程调用了。

查看以httpd开头的进程调用了哪些文件

[root@localhost ~]# lsof -c httpd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd root cwd DIR , /
httpd root rtd DIR , /
httpd root txt REG , 2855 /usr/local/apache2/bin/httpd
httpd root mem REG , /lib/libfreebl3.so
httpd root mem REG , /lib/libnss_files-2.12.s
httpd root mem REG , /lib/ld-2.12.so
httpd root mem REG , /lib/libc-2.12.so
…省略部分输出…

使用“-c”选项可以查询以某个字符串开头的进程调用的所有文件,比如执行“lsof-c httpd”命令就会查询出以 httpd 开头的进程调用的所有文件。

查询PID是1的进程调用的文件

[root@localhost ~]# lsof -p
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init root cwd DIR , /
init root rtd DIR , /
init root txt REG , /sbin/init
init root mem REG , /lib/ld-2.12.so
init root mem REG , /lib/libnss_files-2.12.so

当然,我们也可以按照 PID 查询进程调用的文件,比如执行“lsof -p 1”命令就可以查看 PID 为 1 的进程调用的所有文件。

按照用户名查询某个用户的进程调用的文件

[root@localhost ~]# lsof -u root
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init root cwd DIR , /
init root rtd DIR , /
init root txt REG , /sbin/init
init root mem REG , /lib/ld-2.12.so
init root mem REG , /lib/libnss_files-2.12.s
init root mem REG , /lib/libnih-dbus.so.1.0.
…省略部分输出…

查看某个用户的进程调用了哪些文件。

Linux进程管理 lsof命令:列出进程调用或打开的文件信息的更多相关文章

  1. 1、进程管理常用命令和进程ID

    常用命令 1. ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器. 详细介绍参照:https://www.runoob.com/linu ...

  2. 通过某个进程号显示该进行打开的文件 lsof -p 1 11. 列出多个进程号对应的文件信息 lsof -p 123,456,789 5. 列出某个用户打开的文件信息 lsof -u username

    linux命令 — lsof 查看进程打开那些文件 或者 查看文件给那个进程使用 lsof命令是什么? 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件,2.目录  3.网络文件系 ...

  3. 熟练使用Linux进程管理类命令

    进程管理类命令 – ps命令 ps命令主要用于查看系统的进程 该命令的语法为:ps [参数] ps命令的常用参数选项有: -a:显示当前控制终端的进程(包含其他用户的). -u:显示进程的用户名和启动 ...

  4. Linux进程管理(二、 进程创建)

    通常使用fork创建进程, 也可以用vfork()和clone().fork.vfork和clone三个用户态函数均由libc库提供,它们分别会调用Linux内核提供的同名系统调用fork,vfork ...

  5. Linux学习之lsof命令

    lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控制协议 ...

  6. Linux服务器管理: 系统的进程管理ps命令

    源码包:2015-06-30 12:11:25 首先我们可以通过网络去下载相应的源码包:我们以apache为例: [root@localhostA1 opt]# wget http://archive ...

  7. Linux快速入门教程-进程管理ipcs命令学习

    使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...

  8. linux进程管理常用命令

    初始化进程在centos5,6,7中的发展: 在centos5中使用sysv init 是一个shell脚本,依靠依次执行脚本中的命令启动系统,只能串行执行. 在centos6中使用upstart,也 ...

  9. Linux进程管理:后台启动进程和任务管理命令

    一.为什么要使程序在后台执行 我们的应用有时候要运行时间很长,如:几个小时甚至几个星期,我们可以让程序在后台一直跑. 让程序在后台运行的好处有: 终端关机不影响后台进程的运行.(不会终端一关机或者网络 ...

随机推荐

  1. map重写比较器

    结构体作为map的key或放入set中,需要重载<运算符,如下: typedef struct tagRoadKey { int m_i32Type; int m_i32Scale; bool ...

  2. 【BZOJ3417】Poi2013 Tales of seafaring 分层图BFS

    [BZOJ3417]Poi2013 Tales of seafaring Description 一个n点m边无向图,边权均为1,有k个询问 每次询问给出(s,t,d),要求回答是否存在一条从s到t的 ...

  3. ios 开发证书制作

    1.首先打开Mac中的keychain 选择钥匙串访问-证书助手-创建证书-导出CertificateSigningRequest.CertSigningRequest.CertSigningRequ ...

  4. javascript 禁止页面选取-兼容IE、Chrome和firefox浏览器

    在做到一个页面需要禁止网页内容被选取的时候,碰到浏览器兼容的问题,解决方法如下 1.单独使用适用于IE.Chrome浏览器,主要是在head的<script>标签里面加上如下代码 docu ...

  5. Python全栈day20(解压序列)

    补充:解压序列 需求一,不通过索引取一个列表的第一个元素和最后一个元素 需求二,交换两个变量的值 L=[1,2,3,4,5,6,7,8,9] #把列表第一个元素赋值给a,最后一个元素赋值给c #中间的 ...

  6. 在VisualStudio 2013下使用VS2012的插件

    由于VS2013刚刚推出,而VS的插件又是和版本强相关的,因此VS2013就存在一个插件比较少的问题.虽然2013相对与2012来说改动并不大,应该是拿来重新编译一番就可以使用了.但也得有一个过程,并 ...

  7. win下自动sftp脚本定时下载文件

    缘起一个BA与客户交流的软件.但因为数据不能通过系统直连的方式进行获取. 对方只提供每天一份全量数据到指定文件夹下,我方自动通过sftp的方式去拉取. 一个只有简单几行的操作,想必肯定是不可能需写程序 ...

  8. shell (check return of each line)(PIPESTATUS[@])and sudoer

    shell result from cmdline echo $? if 0 then success ;else failure (shell 执行每部返回值,rm -rf 错误,打包不能覆盖) 我 ...

  9. LeetCode—Minimum Size Subarray Sum

    题目: Given an array of n positive integers and a positive integer s, find the minimal length of a sub ...

  10. django 前端传文件到后台项目目录

    Html端: <form action="/student/upload" method="POST" enctype="multipart/f ...