# phpman > man > fuser(1)

> **TLDR:** Display process IDs currently using files or sockets.
>
- Find which processes are accessing a file or directory:
  `fuser {{path/to/file_or_directory}}`
- Show more fields (`USER`, `PID`, `ACCESS`, and `COMMAND`):
  `fuser {{-v|--verbose}} {{path/to/file_or_directory}}`
- Identify processes using a TCP socket:
  `fuser {{port}}/tcp`
- Kill all processes accessing a file or directory (sends the `SIGKILL` signal):
  `fuser {{-k|--kill}} {{path/to/file_or_directory}}`
- Find which processes are accessing the filesystem containing a specific file or directory:
  `fuser {{-m|--mount}} {{path/to/file_or_directory}}`
- Kill all processes with a TCP connection on a specific port:
  `fuser {{-k|--kill}} {{port}}/tcp`

*Source: tldr-pages*

---

[FUSER(1)](https://www.chedong.com/phpMan.php/man/FUSER/1/markdown)                                    User Commands                                   [FUSER(1)](https://www.chedong.com/phpMan.php/man/FUSER/1/markdown)



## NAME
       fuser - identify processes using files or sockets

## SYNOPSIS
       **fuser** [**-fuv**] [**-a**|**-s**] [**-4**|**-6**] [**-c**|**-m**|**-n** _space_] [ **-k** [**-i**] [**-M**] [**-w**] [**-**_SIGNAL_] ] _name_ ...
### fuser -l
### fuser -V

## DESCRIPTION
       **fuser**  displays  the PIDs of processes using the specified files or file systems.  In the de‐
       fault 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** is omitted in default display mode.
              **F**      open file for writing.  **F** is omitted in default display mode.
              **r**      root directory.
              **m**      mmap'ed file or shared library.
              **.**      Placeholder, omitted in default display mode.

       **fuser** returns a non-zero return code if none of the specified files is accessed or in case of
       a fatal error.  If at least one access has been found, **fuser** returns zero.

       In  order to look up processes using TCP and UDP sockets, the corresponding name space has to
       be selected with the **-n** option. By default **fuser** will look in both IPv6 and IPv4 sockets.  To
       change  the  default  behavior, use the **-4** and **-6** options.  The socket(s) can be specified by
       the local and remote port, and the remote address.  All fields are optional,  but  commas  in
       front of missing fields must be present:

       [_lcl_port_][,[_rmt_host_][,[_rmt_port_]]]

       Either symbolic or numeric values can be used for IP addresses and port numbers.

       **fuser** outputs only the PIDs to stdout, everything else is sent to stderr.

## OPTIONS
### -a --all
              Show  all  files  specified  on the command line.  By default, only files that are ac‐
              cessed by at least one process are shown.

### -c -m

### -f

### -k --kill
              Kill processes accessing the file.  Unless changed with **-**_SIGNAL_, SIGKILL is sent.   An
              **fuser**  process  never kills itself, but may kill other **fuser** processes.  The effective
              user ID of the process executing **fuser** is set to its real user ID before attempting to
              kill.

### -i --interactive
              Ask  the  user for confirmation before killing a process.  This option is silently ig‐
              nored if **-k** is not present too.

### -I --inode
              For the name space **file** let all comparisons be based on the inodes  of  the  specified
              file(s) and never on the file names even on network based file systems.

### -l --list-signals
              List all known signal names.

### -m --mount
              _NAME_ 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  is  speci‐
              fied,  it  is  automatically  changed  to  _NAME_/  to use any file system that might be
              mounted on that directory.

### -M --ismountpoint
              Request will be fulfilled only if _NAME_ specifies a mountpoint.  This is an  invaluable
              seat  belt  which  prevents  you  from killing the machine if _NAME_ happens to not be a
              filesystem.

### -w -k
              not present too.

### -n --namespace
              Select  a  different  name space.  The name spaces **file** (file names, the default), **udp**
              (local UDP ports), and **tcp** (local TCP ports) are supported.   For  ports,  either  the
              port  number  or  the  symbolic  name can be specified.  If there is no ambiguity, the
              shortcut notation _name_**/**_space_ (e.g., _80_**/**_tcp_) can be used.

### -s --silent
              Silent operation.  **-u** and **-v** are ignored in this mode.  **-a** must not be used with **-s**.

       **-**_SIGNAL_
              Use the specified signal instead of SIGKILL when killing processes.   Signals  can  be
              specified  either  by  name  (e.g.,  **-HUP**)  or  by  number (e.g., **-1**).  This option is
              silently ignored if the **-k** option is not used.

### -u --user
              Append the user name of the process owner to each PID.

### -v --verbose
              Verbose mode.  Processes are shown in a **ps**-like style.  The fields PID, USER and  COM‐
              MAND are similar to **ps**.  ACCESS shows how the process accesses the file.  Verbose mode
              will also show when a particular file is being accessed as a mount point, knfs  export
              or swap file.  In this case **kernel** is shown instead of the PID.

### -V --version
              Display version information.

### -4 --ipv4
              Search  only  for  IPv4  sockets.  This option must not be used with the **-6** option and
              only has an effect with the tcp and udp namespaces.

### -6 --ipv6
              Search only for IPv6 sockets.  This option must not be used with  the  **-4**  option  and
              only has an effect with the tcp and udp namespaces.

       **-**      Reset all options and set the signal back to SIGKILL.

## FILES
       /proc  location of the proc file system

## EXAMPLES
### fuser -km /home
              kills all processes accessing the file system /home in any way.

       **if** **fuser** **-s** **/dev/ttyS1;** **then** **:;** **else** _command_**;** **fi**
              invokes _command_ if no other process is using /dev/ttyS1.

### fuser telnet/tcp
              shows all processes at the (local) TELNET port.

## RESTRICTIONS
       Processes accessing the same file or file system several times in the same way are only shown
       once.

       If the same object is specified several times on the command line, some of those entries  may
       be ignored.

       **fuser** may only be able to gather partial information unless run with privileges.  As a conse‐
       quence, files opened by processes belonging to other users may not be listed and  executables
       may be classified as mapped only.

       **fuser**  cannot report on any processes that it doesn't have permission to look at the file de‐
       scriptor table for.  The most common time this problem occurs is when looking for TCP or  UDP
       sockets when running **fuser** as a non-root user.  In this case **fuser** will report no access.

       Installing  **fuser**  SUID root will avoid problems associated with partial information, but may
       be undesirable for security and privacy reasons.

       **udp** and **tcp** name spaces, and UNIX domain sockets can't be searched with  kernels  older  than
       1.3.78.

       Accesses by the kernel are only shown with the **-v** option.

       The  **-k**  option  only works on processes.  If the user is the kernel, **fuser** will print an ad‐
       vice, but take no action beyond that.

## BUGS
       **fuser** **-m** **/dev/sgX** will show (or kill with the **-k** flag) all processes, even if you don't  have
       that device configured.  There may be other devices it does this for too.

       The mount **-m** option will match any file within the same device as the specified file, use the
### -M

## SEE ALSO
       [**kill**(1)](https://www.chedong.com/phpMan.php/man/kill/1/markdown), [**killall**(1)](https://www.chedong.com/phpMan.php/man/killall/1/markdown), [**lsof**(8)](https://www.chedong.com/phpMan.php/man/lsof/8/markdown), [**pkill**(1)](https://www.chedong.com/phpMan.php/man/pkill/1/markdown), [**ps**(1)](https://www.chedong.com/phpMan.php/man/ps/1/markdown), [**kill**(2)](https://www.chedong.com/phpMan.php/man/kill/2/markdown).



psmisc                                       2020-09-09                                     [FUSER(1)](https://www.chedong.com/phpMan.php/man/FUSER/1/markdown)
