FUSER(1)                  User Commands                  FUSER(1)

NAME
       fuser - identify processes using files or sockets

SYNOPSIS
       fuser [-a|-s] [-n space] [-signal] [-kimuv] name ...  [-]
       [-n space] [-signal] [-kimuv] name ...
       fuser -l
       fuser -V

DESCRIPTION
       fuser displays the PIDs 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 is omitted in default display
                     mode.

              r      root directory.

              m      mmap'ed file or shared library.

       fuser returns a non-zero return code if none of the speci-
       fied  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. Then 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.

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

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

       -i     Ask the user for confirmation before killing a pro-
              cess. This option is silently ignored if -k is  not
              present too.

       -l     List all known signal names.

       -m     name specifies a file on a mounted file system or a
              block device that is mounted. All processes access-
              ing  files  on  that  file system are listed.  If a
              directory file is specified,  it  is  automatically
              changed to name/. to use any file system that might
              be mounted on that directory.

       -n space
              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. name/proto) can
              be used.

       -s     Silent operation. -a, -u and -v are ignored in this
              mode.

       -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).

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

       -v     Verbose mode. Processes  are  shown  in  a  ps-like
              style. The fields PID, USER and COMMAND are similar
              to ps. ACCESS shows how the  process  accesses  the
              file.  If  the access is by the kernel (e.g. in the
              case of a mount point, a swap file,  etc.),  kernel
              is shown instead of the PID.

       -V     Display version information.

       -      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 something; fi invokes
       something 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  com-
       mand line, some of those entries may be ignored.

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

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

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

       udp and tcp currently only work for IPv4.

       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 advice, but take no action
       beyond that.

AUTHOR
       Werner Almesberger <Werner.Almesberger@epfl.ch>

SEE ALSO
       kill(1), killall(1), ps(1), kill(2)

Linux                      Nov 1, 1998                          1