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. Android 用Animation-list实现逐帧动画 (转载)

    转自:http://blog.csdn.net/aminfo/article/details/7847761 第一步:先上图片素材,以下素材放到res/drawable目录下: http://blog ...

  2. 张高兴的 .NET Core IoT 入门指南:(三)使用 I2C 进行通信

    什么是 I2C 总线 I2C 总线(Inter-Integrated Circuit Bus)是设备与设备间通信方式的一种.它是一种串行通信总线,由飞利浦公司在1980年代为了让主板.嵌入式系统或手机 ...

  3. Linux下的录屏软件Kazam

    发现Ubuntu下一个很好用的录屏软件kazam,Ubuntu官方源中就有. 1.安装 $ sudo apt-get install kazam 2.使用 使用很简单,除了截图,还可以录制屏幕视频.既 ...

  4. C++类 单冒号

    1.继承 class Base { }; class Derived : public Base { }; 示列: class Base   { public: int a=10;  }; class ...

  5. jmeter持续集成测试中mongodb版本问题

    jmeter测试mongodb,采用的是JSR223 Sampler脚本连接数据库,其中连接数据库用到了SCRAM-SHA1认证机制,代码如下: MongoCredential credential ...

  6. Appium安装说明

    1.安装Appium前,需要先安装node.js .node.js官方网站:https://nodejs.org/, 这里我以Windows 10为例进行安装,选择Windows installer( ...

  7. 字符串处理 Codeforces Round #297 (Div. 2) B. Pasha and String

    题目传送门 /* 题意:给出m个位置,每次把[p,len-p+1]内的字符子串反转,输出最后的结果 字符串处理:朴素的方法超时,想到结果要么是反转要么没有反转,所以记录 每个转换的次数,把每次要反转的 ...

  8. iOS开发隐藏tabBar的问题

    开发中遇到第一个页面需要显示tabBar,但是第二个页面不需要显示,当回到第一个页面的时候又需要显示的情况. 在第一个页面跳转到第二个页面的时候需要给第二个页面设置tabBar的隐藏 - (void) ...

  9. rac 添加 资源

    10g : 自动化.监控.os,存储,底成,网络,规范

  10. WebForm中 页面传参的总结

    页面与后台的数据传递是实现动态页面的前提---数据交互.无论是MVC还是WebFrom 都需要详细了解各种前后台的数据传输方式,熟悉每种方式的优缺点,这样才能提高网站的性能,技术上得到锻炼. 1.Fo ...