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. HDU 5884 Sort (二分+k叉哈夫曼树)

    题意:n 个有序序列的归并排序.每次可以选择不超过 k 个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问 k最小是多少. 析:首先二分一下这个 k .然后在给定 k 的情况下, ...

  2. Cardboard profile的修改

    Cardboard盒子中,手机屏幕大小.镜片离屏幕距离,屏幕分辨率等都会影响配戴者的眼中成像,通过对生成图像的变形可以部份解决这一问题,cardboard sdk中提供了cardboardprofil ...

  3. E20180405-hm

    tutorial  n. 个别辅导时间; 教程,辅导材料; 使用说明书; 辅导课;  adj. 导师的; 私人教师的; 辅导的; track n. 小路,小道; 痕迹,踪迹; 轨道,音轨; 方针,路线 ...

  4. TP3.2单字母函数

    A方法 A方法用于在内部实例化控制器 调用格式:A(‘[项目://][分组/]模块’,’控制器层名称’) 最简单的用法: $User = A('User'); 表示实例化当前项目的UserAction ...

  5. Wolfycz的娱乐赛题解

    现在不会放题解的!比赛完了我会把题解放上来的 祝大家玩的愉快~ 等会,cnblogs不会显示更新时间?我禁赛我自己 UPD:2018.12.15 欢迎大家爆踩标程- painting 我们考虑转化题意 ...

  6. 2015 ACM-ICPC国际大学生程序设计竞赛北京赛区网络赛 1002 Mission Impossible 6

    题目链接: #1228 : Mission Impossible 6 解题思路: 认真读题,细心模拟,注意细节,就没有什么咯!写这个题解就是想记录一下rope的用法,以后忘记方便复习. rope(块状 ...

  7. c8051单片机注意事项:

    一定要注意交叉开关问题:外设要想正确分配到指定引脚,一定要用配置工具确定分配到指定引脚:如果手动分配一定要仔细验证.这方面有个深刻的教训. 有个项目用c8051f020,用到2个串口,硬件已经确定好了 ...

  8. [已读]HTML5与CSS3权威指南第二版(下)

    去年下半年前公司给买的(老付对我们确实蛮好的),一人挑一本,我当时一定是秀逗了.看的时候就发现,这本书的内容过时严重,即便它是新出不久的第.二.版.其他没什么说的,总之,不推荐看.

  9. session共享方法

    session数据保存在memcached,redis这种内存数据库内 memcache比较简单,使用的场景比较多.redis支持的数据类型多.而且数据具有期限,和session和期限可以配合使用 通 ...

  10. Setting up IPS/inline for Linux in Suricata

    不多说,直接上干货! 见官网 https://suricata.readthedocs.io/en/latest/setting-up-ipsinline-for-linux.html Docs » ...