前言

  • 之前连公司堡垒机的时候发现连不上,找运维排查是建立的链接数太多,很多超时链接没有断掉,导致不能再创建链接
  • 此时,需要手动断开用户终端链接,然后百度搜到 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