Fuser (Unix)


The Unix command fuser is used to show which processes are using a specified computer file, file system, or Unix socket.

Example

For example, to check process IDs and users accessing a USB drive:

$ fuser -m -u /mnt/usb1
/mnt/usb1: 1347c 1348c 1349c

The command displays the process identifiers of processes using the specified files or file
systems. In the default display mode, each file name is followed by a
letter denoting the type of access:
; c : current directory.
; e : executable being run.
; f : open file.
; F : open file for writing.
; r : root directory.
; m : mmap'ed file or shared library
The command can also be used to check what processes are using a network port:

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

The command returns a non-zero code if none of the files are
accessed or in case of a fatal error. If at least one access has succeeded, fuser returns zero.
The output of "fuser" may be useful in diagnosing "resource busy" messages arising when attempting to unmount filesystems.

Options

; -k : kills all process accessing a file. For example, kills all processes accessing this directory without confirmation. Use -i for confirmation
; -i : interactive mode. Prompt before killing process
; -v : verbose.
; -u : append username
; -a : display all files
; -m : specifies a file on a mounted file system or a block device that is mounted. All processes accessing files on that file system are listed. If a directory file is specified, it is automatically changed to /. to use any file system that might be mounted on that directory.
The option -k sends a SIGKILL to all process. Use the -signal to send a different signal. For a list of signals supported by the fuser run 'fuser -l'

Related commands