Fuser (Unix)

Unix命令fuser用于显示哪些进程正在使用给定的文件、文件系统或unix套接字。例如,要查看访问USB驱动器的进程ID及其用户:

$ fuser -m -u /mnt/usb1
/mnt/usb1: 1347c(root) 1348c(guido) 1349c(guido)

该命令显示使用指定文件或文件系统进程的进程标识符。在默认的显示模式下,每个文件名后跟一个字母,表示访问类型:

; c : 当前目录。
; e : 正在运行的可执行文件。
; f : 打开的文件。
; F : 打开的写入文件。
; r : 根目录。
; m : mmap的文件或共享库

该命令还可以用来检查哪些进程正在使用网络端口:

$ fuser -v -n tcp 80
USER PID ACCESS COMMAND
80/tcp: root 3067 F.... (root)httpd
apache 3096 F.... (apache)httpd
apache 3097 F.... (apache)httpd

如果没有访问任何文件或发生致命错误,该命令将返回非零代码。如果至少有一次访问成功,则返回零。“fuser”的输出可能有助于诊断尝试卸载文件系统时产生的“资源繁忙”消息。

选项
; -k : 杀死所有访问文件的进程。例如,fuser -k /path/to/your/filename会杀死所有访问此目录的进程而无需确认。使用-i在操作前进行确认
; -i : 交互模式。杀死进程前提示
; -v : 详细模式
; -u : 显示用户名
; -a : 显示所有文件
; -m : name指定已挂载的文件系统或块设备上的文件。列出所有访问该文件系统上文件的进程。如果指定了目录文件,将自动更改为name/.,即是可能挂载在此目录中的任何文件系统。

另外,请注意-k将向进程发送SIGKILL。使用-signal发送不同的信号。有关fuser支持的信号列表,运行“fuser -l”。

相关命令

  • 所有打开的文件及其打开的进程列表都可以通过lsof命令获得。
  • BSD操作系统上的等价命令是fstat(1)

外部链接

评论 (0)

  • 还没有评论,来抢沙发吧。