Linux - fuser 命令
前言
- 之前连公司堡垒机的时候发现连不上,找运维排查是建立的链接数太多,很多超时链接没有断掉,导致不能再创建链接
- 此时,需要手动断开用户终端链接,然后百度搜到 fuser 可以断开用户终端链接
命令作用
有三种解释
- 使用文件或 socket 识别进程
- 显示哪些进程使用命名文件、socket 或文件系统
- 显示使用指定文件或文件的进程的 pid 系统
总的来说就是文件+进程
语法格式
fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...
参数列表
参数 | 作用 |
-a,--all | 显示未使用的文件 |
-i,--interactive | 杀死前的交互式询问(忽略而不使用-k) |
-k,--kill | 终止访问命名文件的进程 |
-l,--list | 列出可用的信号名称 |
-m,--mount | 显示使用命名文件系统或块设备的所有进程 |
-M,--ismountpoint | 仅当NAME是挂载点时满足请求 |
-n,--namespace | 在此名称空间中搜索命名空间(文件、udp或tcp) |
-s,--silent | 静默操作 |
-SIGNAL | 发送这个信号而不是SIGKILL |
-u,--user | 显示用户ID |
-v,--verbose | 详细输出 |
-w,--writeonly | 杀死具有写访问权限的进程 |
-V,--version | 版本信息 |
-4,--ipv4 | 搜索ipv4 socket |
-6,--ipv6 |
搜索ipv6 socket |
- reset | 重置 |
不会所有参数都讲
基础用法
fuser /root
PID后跟的字符说明了进程以何种方式与该目录/文件关联
- c 指示进程的工作目录
- e 指示该文件为进程的可执行文件(即进程由该文件拉起)
- f 指示该文件被进程打开,默认情况下f字符不显示
- F 指示该文件被进程打开进行写入,默认情况下F字符不显示
- r 指示该目录为进程的根目录
- m 指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存
- . 占位符,默认显示模式中省略
详细输出
fuser -v /root
杀掉进程
fuser -k /dev/pts/0
这是断开本地 ssh 连接阿里云服务器的终端
杀掉进程并询问
fuser -v -i -k /dev/pts/0