Linux-fuser

2. 选项
3. EXAMPLES
4. RESTRICTIONS 限制
5. SIGNAL 可用信号

fuser - 使用文件或套接字识别进程

1. 描述

fuser使用指定的文件或文件系统显示进程的PID。
  在默认显示模式下,每个文件名后跟一个表示访问类型的字母:

F…. open file for writing. F is omitted in default display mode. 打开文件写。 默认显示模式中省略F。
f…. open file. f is omitted in default display mode. 打开文件。 默认显示模式中省略f。
.r… root directory. 根目录。
..c.. current directory. 当前目录。进程的工作目录
...e. executable being run. 正在运行的可执行
….m mmap'ed file or shared library. mmap的文件或共享库。
. Placeholder, omitted in default display mode. 占位符,在默认显示模式下省略。

如果未访问任何指定的文件或发生致命错误,fuser 将返回非零返回码。 如果至少找到一个访问权限,则fuser返回零。

要使用TCP和UDP套接字查找进程,必须使用“-n”选项选择相应的名称空间。 默认情况下,fuser将同时查看IPv6和IPv4套接字。 要更改默认行为,请使用-4和-6选项。 套接字可以由本地和远程端口以及远程地址指定。 所有字段都是可选字段,但必须存在缺少字段前面的逗号:
       [lcl_port][,[rmt_host][,[rmt_port]]]
   符号或数字值都可用于IP地址和端口号。
   fuser只将PID输出到stdout,其他所有内容都发送到stderr。

2. 选项

Option en cn 互斥 依赖
-a,--all display unused files too 显示命令中指定的所有文件,包含未使用 -s  
-s,--silent silent operation 无声的操作. 将忽略-u和-v。 -a  
-v,--verbose verbose output 详细输出    
-u,--user display user IDs 显示用户ID    
         
-n,--namespace SPACE search in this name space (file, udp, or tcp) 在此名称空间中搜索(默认文件,也可udp或tcp)    
-4,--ipv4 search IPv4 sockets only 仅搜索IPv4套接字, 仅对tcp和udp命名空间有效。 -6  
-6,--ipv6 search IPv6 sockets only 仅搜索IPv6套接字, 仅对tcp和udp命名空间有效。 -4  
         
-k,--kill kill processes accessing the named file 杀死访问该文件的进程。默认发SIGKILL,可用-SIGNAL更改    
-i,--interactive ask before killing (ignored without -k) 在杀戮之前询问   -k
-w,--writeonly kill only processes with write access 仅杀死具有写访问权限的进程   -k
-SIGNAL send this signal instead of SIGKILL 发送指定信号而不是SIGKILL   -k
-l,--list-signals list available signal names 列出可用的信号名称    
         
-m,--mount show all processes using the named filesystems or block device 使用命名文件系统或块设备显示所有进程    
-M,--ismountpoint fulfill request only if NAME is a mount point 仅在NAME是挂载点时才满足请求。如果NAME恰好不是文件系统,它可以防止你杀死机器。    
-I,--inode use always inodes to compare files 始终使用inode来比较文件    
-V,--version display version information 显示版本信息    
- Reset all options and set the signal back to SIGKILL. 重置所有选项并将信号设置回SIGKILL。    

3. EXAMPLES

$ fuser -km /home
// kills all processes accessing the file system /home in any way.以任何方式杀死访问文件系统/ home的所有进程。

if fuser -s /dev/ttyS1; then :; else something; fi
// invokes something if no other process is using /dev/ttyS1.如果没有其他进程正在使用/dev/ttyS1,则调用一些东西。

$ fuser telnet/tcp
// shows all processes at the (local) TELNET port.显示(本地)TELNET端口的所有进程。

$ fuser -v fuser.xls
 USER PID ACCESS COMMAND
/home/toma/fuser.xls:
 toma 5323 F.... soffice.bin

$ sudo fuser -vua /dev/sda10
 USER PID ACCESS COMMAND
/dev/sda10: root 839 F.... (root)mount.ntfs

$ sudo fuser -mvua /dev/sda10
 USER PID ACCESS COMMAND
/dev/sda10: root kernel mount (root)/run/media/toma/TjOe
 root 839 F.... (root)mount.ntfs
 toma 7697 f.... (toma)vlc

$ sudo fuser -vun tcp 1080
 USER PID ACCESS COMMAND
1080/tcp: root 421 F.... (root)v2*

4. RESTRICTIONS 限制

以相同方式多次访问同一文件或文件系统的进程仅显示一次。
  如果在命令行上多次指定了同一个对象,则可能会忽略其中一些条目。
  除非以特权运行,否则fuser可能只能收集部分信息。因此,可能未列出属于其他用户的进程打开的文件,并且可执行文件可能仅被分类为映射。
  fuser无法报告它没有查看文件描述符表的权限的任何进程。发生此问题的最常见时间是在以非root用户身份运行fuser时查找TCP或UDP套接字。在这种情况下,定影器将报告无法访问。
  安装fuser SUID root将避免与部分信息相关的问题,但出于安全和隐私原因可能不合需要。
  udp和tcp名称空间,并且无法使用早于1.3.78的内核搜索UNIX域套接字。
  内核访问仅使用-v选项显示。
  -k选项仅适用于进程。如果用户是内核,fuser将打印一条建议,但除此之外不采取任何措施。

5. SIGNAL 可用信号

-SIGNAL 选项可用信号使用 -l 列出

No fuser -l 信号 默认操作 描述
1 HUP SIGHUP 终止 挂断
2 INT SIGINT 终止 终端中断信号 'Ctrl C’
3 QUIT SIGQUIT 终止(核心转储) 终端退出信号 'Ctrl \’
4 ILL SEAL 终止(核心转储) 非法指令
5 TRAP SIGTRAP 终止(核心转储) 跟踪/断点陷阱
6 ABRT SIGABRT 终止(核心转储) 处理中止信号
7 BUS SIGBUS 终止(核心转储) 访问内存对象的未定义部分
8 FPE SIGFPE 终止(核心转储) 错误的算术运算
9 KILL SIGKILL 终止 强制终止(不能被抓住或忽略)
10 USR1 SIGUSR1 终止 用户定义的信号1
11 SEGV SIGSEGV 终止(核心转储) 无效的内存引用
12 USR2 SIGUSR2 终止 用户定义的信号2
13 PIPE SIGPIPE 终止 写在没有人阅读的管道上
14 ALRM SIGALRM 终止 警报
15 TERM SIGTERM 终止 终止信号
16 STKFLT SIGSTKFLT   堆栈故障
17 CHLD SIGCHLD 忽略 子进程已终止,停止或继续
18 CONT SIGCONT 继续 如果停止,继续执行 'fg/bg’
19 STOP SIGSTOP 停止 停止执行(无法捕获或忽略) ‘Ctrl Z’
20 TSTP SIGTSTP 停止 终端停止信号 ‘Ctrl Z’
21 TTIN SIGTTIN 停止 后台进程尝试读取
22 TTOU SIGTTOU 停止 尝试写入的后台进程
23 URG SIGURG 忽略 套接字可提供高带宽数据
24 XCPU SIGXCPU 终止(核心转储) 超出CPU时间限制
25 XFSZ SIGXFSZ 终止(核心转储) 超出文件大小限制
26 VTALRM SIGVTALRM 终止 虚拟计时器已过期
27 PROF SIGPROF 终止 分析计时器已过期
28 WINCH SIGWINCH 忽略 终端窗口大小已更改
29 POLL SIGPOLL 终止 可轮询的事件
30 PWR SIGPWR   电源故障
31 SYS SIGSYS 终止(核心转储) 系统调用错误

默认操作行动解释:
终止  - Terminate 过程异常终止。该过程终止于_exit()的所有后果,除了wait()和waitpid()可用的状态指示指定信号的异常终止。
终止(核心转储)  - Terminate (core dump)  异常终止进程。另外,可能发生实现定义的异常终止动作,例如创建核心文件。
忽略  - Ignore 忽略信号。
停止  - Stop 停止(不终止)该过程。
继续  - Continue 如果停止,继续该过程; 否则,忽略信号。

https://en.wikipedia.org/wiki/Signal_(IPC)

Post operation failed. The error message related to this problem was as follows: 博文中含有违规内容: v2*!

Linux-fuser的更多相关文章

  1. Linux fuser工具使用方法介绍

    引言 fuser是linux中较常用的工具,"fuser"——从其名称我们可以看出该工具的用途:查询给定文件或目录的用户或进程信息. 除查询文件相关信息之外,使用fuser还能向进 ...

  2. linux fuser的使用

    当进行共享存储的时候,umount可能无法用于卸载某个设备,说是被某个进程所占用,但是又无法找到该进程.这个时候使用fuser -km /data命令杀死所有在使用这个存储设备的进程然后再umount ...

  3. Linux - fuser 命令

    前言 之前连公司堡垒机的时候发现连不上,找运维排查是建立的链接数太多,很多超时链接没有断掉,导致不能再创建链接 此时,需要手动断开用户终端链接,然后百度搜到 fuser 可以断开用户终端链接 命令作用 ...

  4. Linux资源监控命令/工具(综合)

    目录: ps pstree pidof top free uptime ifuser lsof mpstat vmstst pidstat iostat iotop watch sar 1.ps 1) ...

  5. Linux lsof工具介绍

    引言 在<Linux fuser工具介绍>一文中,与大家一起学习了fuser工具的使用方法."lsof"——list open files,lsof也是Linux下用于 ...

  6. Linux 学习路线

    前言 这篇文章会一直更新...只是将个人的文章总结归纳到这,不代表最佳学习路线 没有链接的文章后续会补上...还没写的知识点未来用到也会补上...太卷了 常用基础命令 Linux常用命令 - cd命令 ...

  7. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  8. NFS挂载报如下错误信息:mount.nfs: Stale NFS file handle解决

    1)用fuser杀掉占用那个目录的进程 linux:~ # fuser -k /home/msgplus/msgplus/remote_dir 2)强制umount linux:~ # umount ...

  9. linux命令之 df file fsck fuser

    有非常多人说,网上非常多知识点都有了.为什么你还要在自己的博客中反复这些东西呢? 我想说的是.别人写的东西是别人理解的东西,同一时候也是别人学习过程的总结,对于自己来说.自己写自己的博客最基本的目的就 ...

  10. Linux记录-分区(df/fdisk/mount/umount/fuser)

    1.查看磁盘挂载(df -TH) 2.卸载umount /dev/vdb1 3.查杀用户进程(fuser -m -v -i -k /dev/vdb1) 4.再次卸载umount /dev/vdb1,并 ...

随机推荐

  1. FTP服务相关实现

    FTP服务的相关实现 vsftpd介绍 1>vsftpd全名为very secure FTP daemon,为非常安全的FTP服务,是针对操作系统的权限来设计的,这个权限是发起者发起该服务进程的 ...

  2. 让 Ocelot 与 asp.net core “共存”

    让 Ocelot 与 asp.net core "共存" Intro 我们的 API 之前是一个单体应用,各个模块的服务是通过 Assembly 集成在一起,最后部署在一个 web ...

  3. 关于js变量作用域

    先来看一段代码 var ss=1;function sss(){ alert(ss);}$(document).ready(function(){ var ss=2; alert(ss); sss() ...

  4. CF1059E Split the Tree(倍增)

    题意翻译 现有n个点组成一棵以1为根的有根树,第i个点的点权为wi,需将其分成若干条垂直路径使得每一个点当且仅当被一条垂直路径覆盖,同时,每条垂直路径长度不能超过L,点权和不能超过S,求最少需要几条垂 ...

  5. Raphael.js改变元素层叠顺序

    Raphael.js 元素(Element)改变层叠顺序,Raphael.js是一个矢量绘图库兼容svg和vml.初学时感觉css的z-index能搞定,结果是不支持,不过矢量绘图符合dom标准.可以 ...

  6. ngxin做http强制跳转https,接口的POST请求变成GET

    http强制跳转https出现了问题.修改nginx配置如下即可解决: server { listen 80; server_name *.snsprj.cn; return 307 https:// ...

  7. easyUI Uncaught TypeError: Cannot read property 'length' of undefined

    dataGrid json 封装数据格式为 List<Object> 格式

  8. [洛谷P3512 [POI2010]PIL-Pilots]

    题目链接: 传送门走这里 题目分析: 感觉不是很难啊--不像是蓝题(AC量也不像)恶意评分? 少打了一个+1调了半天,就这样居然还能过60pts?我思路和题解第一篇高度重合是什么鬼啊,太过分了吧本来还 ...

  9. Histogram LightOJ - 1083

    Histogram LightOJ - 1083 题意:给出一个直方图,由n个长条组成,它们的x轴上坐标分别为1-n,读入n之后读入的一行中,第i个表示x轴上坐标为i的长条长度.求直方图最大的正方形面 ...

  10. python浅拷贝深拷贝

    copy_list=list[:]  得到的是浅拷贝,即只能顶层拷贝,里面的嵌套不会复制一份. a = [0, [1, 2], 3] b = a[:] a[0] = 8 a[1][1] = 9 请问现 ...