Linux-fuser
Linux-fuser
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 如果停止,继续该过程; 否则,忽略信号。
Linux-fuser的更多相关文章
- Linux fuser工具使用方法介绍
引言 fuser是linux中较常用的工具,"fuser"——从其名称我们可以看出该工具的用途:查询给定文件或目录的用户或进程信息. 除查询文件相关信息之外,使用fuser还能向进 ...
- linux fuser的使用
当进行共享存储的时候,umount可能无法用于卸载某个设备,说是被某个进程所占用,但是又无法找到该进程.这个时候使用fuser -km /data命令杀死所有在使用这个存储设备的进程然后再umount ...
- Linux - fuser 命令
前言 之前连公司堡垒机的时候发现连不上,找运维排查是建立的链接数太多,很多超时链接没有断掉,导致不能再创建链接 此时,需要手动断开用户终端链接,然后百度搜到 fuser 可以断开用户终端链接 命令作用 ...
- Linux资源监控命令/工具(综合)
目录: ps pstree pidof top free uptime ifuser lsof mpstat vmstst pidstat iostat iotop watch sar 1.ps 1) ...
- Linux lsof工具介绍
引言 在<Linux fuser工具介绍>一文中,与大家一起学习了fuser工具的使用方法."lsof"——list open files,lsof也是Linux下用于 ...
- Linux 学习路线
前言 这篇文章会一直更新...只是将个人的文章总结归纳到这,不代表最佳学习路线 没有链接的文章后续会补上...还没写的知识点未来用到也会补上...太卷了 常用基础命令 Linux常用命令 - cd命令 ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- NFS挂载报如下错误信息:mount.nfs: Stale NFS file handle解决
1)用fuser杀掉占用那个目录的进程 linux:~ # fuser -k /home/msgplus/msgplus/remote_dir 2)强制umount linux:~ # umount ...
- linux命令之 df file fsck fuser
有非常多人说,网上非常多知识点都有了.为什么你还要在自己的博客中反复这些东西呢? 我想说的是.别人写的东西是别人理解的东西,同一时候也是别人学习过程的总结,对于自己来说.自己写自己的博客最基本的目的就 ...
- 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,并 ...
随机推荐
- java try·····catch·····异常处理学习
异常处理(又称为错误处理)功能 用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件). try....catch....只是异常处理的一种常用方法 try{ //可能导致异常 ...
- [WPF自定义控件库] 自定义控件的代码如何与ControlTemplate交互
1. 前言 WPF有一个灵活的UI框架,用户可以轻松地使用代码控制控件的外观.例设我需要一个控件在鼠标进入的时候背景变成蓝色,我可以用下面这段代码实现: protected override void ...
- SCUT - 249 - Hello World - 数位dp
https://scut.online/p/249 数位dp的模板题? 需要特殊判断0,这个很不优雅,因为0-1=-1是个很奇葩的东西? #include<bits/stdc++.h> u ...
- POJ2576【背包】
题意: 每个人必须在一个团队或其他; 人对两支球队的数量不得超过1不同; 人们对各队的总重量应尽可能接近相等越好. 思路: 那么我求一个能接近最接近总和一半的值. 每个人的值就是物品,每个物品有且只有 ...
- CF487E Tourists【圆方树+tarjan+multiset+树剖+线段树】
圆方树不仅能解决仙人掌问题(虽然我仙人掌问题也没用过圆方树都是瞎搞过去的),还可以解决一般图的问题 一般图问题在于缩完环不是一棵树,所以就缩点双(包括双向边) 每个方点存他所在点双内除根以外的点的最小 ...
- bzoj 4197: [Noi2015]寿司晚宴【状压dp】
一个数内可能多个的质因数只有小于根号n的,500内这样的数只有8个,所以考虑状压 把2~n的数处理出小于根号500的质因数集压成s,以及大质数p(没有就是1),然后按p排序 根据题目要求,拥有一个质因 ...
- (3)javascript的数据类型
本篇学习资料主要讲解javascript中的数据类型 Javascript的数据类型 Javascript的数据类型:即一个数据不必首先做声明,可以在使用或赋值时再确定其数据的类型,当然也可以先声明该 ...
- springboot整合H2内存数据库,实现单元测试与数据库无关性
一.新建spring boot工程 新建工程的时候,需要加入JPA,H2依赖 二.工程结构 pom文件依赖如下: <?xml version="1.0" encoding ...
- 图论之最短路算法之SPFA算法
SPFA(Shortest Path Faster Algorithm)算法,是一种求最短路的算法. SPFA的思路及写法和BFS有相同的地方,我就举一道例题(洛谷--P3371 [模板]单源最短路径 ...
- 远程报:这可能是由于credssp加密oracle修正
此错误解决办法 1.Win+R 输入regedit打开注册表 找到对应的以下目录HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion ...