查看进程使用的文件(命令:fuser、lsof、pidof)

您所在的位置:网站首页 如何查看当前进程 查看进程使用的文件(命令:fuser、lsof、pidof)

查看进程使用的文件(命令:fuser、lsof、pidof)

2024-02-12 17:34| 来源: 网络整理| 查看: 265

一、fuser命令

1.功能

查看该文件/文件系统被哪些进程所使用,重点在查看进程

2.命令格式

fuser [-umv] [-k [i] [信号]] 文件/目录

相关参数与选项

-u:除了列出进程的PID之外,还列出该进程的拥有者 -m:后面接的那个文件名会主动地上提到该文件系统的最顶层,对umount不成功有效 -v:可以列出每个文件与进程还有命令的完整相关性 -k:找出使用该文件/目录的进程,并试图以-9这个信号给予该进程(就是终止正在使用这个文件的进程) -i:必须与-k配合使用,在删除PID之前会先询问使用者的意愿 信号:就是前面提到过的信号,-1、-15等,若不加的话,默认为-9

3.查看目录 查看当前目录正在被哪些进程在使用

可以看到目前的路径为dongshao用户的家目录,有一个进程在使用(bash这个进程) 在这里插入图片描述在这里插入图片描述 4.查看文件系统

案例一:查看/proc这个目录有哪些进程在使用

第一步:查看/proc这个目录有哪些进程在使用 在这里插入图片描述第二步:我们加上-m这个参数查看(可以看到有几个进程在进行/proc文件系统的读取)

在这里插入图片描述

案例二:查看/home这个文件系统有哪些进程正在使用(/home已经被挂在)

第一步:查看自己当前bash进程的PID号 在这里插入图片描述 第二步:查看一下/home这个文件系统(可以看到上面那个bash进程也在)

在这里插入图片描述在这里插入图片描述 第三步:如果我们使用umount /home去卸载这个/home目录会提示/home is busy,不让挂载。因为有进程正在使用这个目录

第四步:我们使用fuser -mki /home去给使用/home目录的进程一个-9信号,删除这些进程,并提示你是否要删除进程。此处我们当前全选n,因为都是测试而已,不是真的要删除这些进程

在这里插入图片描述 5.查看文件 查看/run下面属于FIFO类型的文件,并且找出读取该文件的进程有哪些(通常系统的FIFO类型的文件都放置到/run下面,通过这个方式来追踪该文件被读取的进程)

第一步:查看/run目录下面FIFO类型的文件有哪些,并从里面随便挑选一个 在这里插入图片描述第二步:从上面那些FIFO文件中随便挑选一个做测试 在这里插入图片描述

二、lsof命令

1.功能 查看一个进程使用了哪些文件,重点在查看文件

2.命令格式

lsof [-aUu] [+d]

相关参数与选项 -a:多项数据需要【同时成立】才显示出结果时使用 -U:仅列出UNIX-like修通的socket文件类型 -u:后面接用户名,列出该使用者相关所使用的文件 +d:后面接目录,即找出某个目录下面已经被使用的文件

3.演示案例

案例一:查看所有的进程,每个进程分别使用什么文件

查询的结果很多,NAME为使用的文件/目录。可以看到system系统进程使用所有的文件 在这里插入图片描述 案例二:查看仅root的所有进程中所使用socket文件(-a选项的使用)

因为查看的root进程所使用的文件,并且查询的是socket文件,所以需要用-a来连接。如果不用-a显示的结果可能会不正确

在这里插入图片描述案例三:查看系统上面所有进程所使用的外接设备文件 在这里插入图片描述 案例四:查看属于root的bash这个进程所使用的文件

在这里插入图片描述

三、pidof命令

1.功能

找出某个正在执行的进程的PID

2.命令格式

pidof [-sx] 进程名

相关参数与选项 -s:仅列出一个PID而不列出所有的PID -x:同时列出该进程可能的PPID那个进程的PID

3.演示案例 案例一:查看系统上面进程的PID 查看init与rsyslogd这两个进程的PID(其中名为init的有两个进程) 在这里插入图片描述 案例二:查看系统上面bash进程的PID(bash有三个) 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3