---
name: "fuser"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/fuser"
---

# fuser(1)

list IDs of all processes that have one or more files open

## NAME

**fuser** – list IDs of all processes that have one or more files open

## SYNOPSIS

**fuser** \[**-cfkmu**\] \[**-M** *core*\] \[**-N** *system*\] \[**-s** *signal*\] *file ...*

## DESCRIPTION

The **fuser** utility writes to stdout the PIDs of processes that have one or more named files open. For block and character special devices, all processes using files on that device are listed. A file is considered open by a process if it was explicitly opened, is the working directory, root directory, jail root directory, active executable text, kernel trace file or the controlling terminal of the process. If **-m** option is specified, the **fuser** utility will also look through mmapped files.

The following options are available:

- **-c**

  Treat files as mount points and report on any files open in the file system.

- **-f**

  The report must be only for named files.

- **-k**

  Send signal to reported processes (SIGKILL by default).

- **-M** *core*

  Extract values associated with the name list from the specified core instead of the default */dev/kmem*.

- **-m**

  Search through mmapped files too.

- **-N** *system*

  Extract the name list from the specified system instead of the default, which is the kernel image the system has booted from.

- **-s** *signal*

  Use given signal name instead of default SIGKILL.

- **-u**

  Write the user name associated with each process to stderr.

The following symbols, written to stderr will indicate how files are used:

- **a**

  The file is open as append only (O\_APPEND was specified).

- **c**

  The file is the current workdir directory of the process.

- **d**

  The process bypasses fs cache while writing to this file (O\_DIRECT was specified).

- **e**

  Exclusive lock is hold.

- **j**

  The file is the jail root of the process.

- **m**

  The file is mmapped.

- **r**

  The file is the root directory of the process.

- **s**

  Shared lock is hold.

- **t**

  The file is the kernel tracing file for the process.

- **w**

  The file is open for writing.

- **x**

  The file is executable text of the process.

- **y**

  The process uses this file as its controlling tty.

## EXIT STATUS

The **fuser** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

The command ‘fuser -fu .’ writes to standard output the process IDs of processes that are using the current directory and writes to stderr an indication of how those processes are using the directory and user names associated with the processes that are using this directory.

## SEE ALSO

[fstat(1)](/fstat/1.md), [ps(1)](/ps/1.md), [systat(1)](/systat/1.md), [iostat(8)](/iostat/8.md), [pstat(8)](/pstat/8.md), [vmstat(8)](/vmstat/8.md)

## STANDARDS

The **fuser** utility is expected to conform to IEEE Std 1003.1-2004 (“POSIX.1”).

## HISTORY

The **fuser** utility appeared in FreeBSD 9.0.

## AUTHORS

The **fuser** utility and this manual page was written by Stanislav Sedov ⟨*stas@FreeBSD.org*⟩.

## BUGS

Since **fuser** takes a snapshot of the system, it is only correct for a very short period of time. When working via [kvm(3)](/kvm/3.md) interface the report will be limited to filesystems the **fuser** utility knows about (currently only cd9660, devfs, nfs, ntfs, nwfs, udf, ufs and zfs).
