Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

fuser(8)

Name

fuser - identify users of files and devices

Synopsis

/usr/sbin/fuser [-c | -d | -f] [-nu] [-k | -s sig] files
     [ [-] [-c | -d | -f] [-nu] [-k | -s sig] files] ...

Description

The fuser utility displays the process IDs of the processes that are using the files specified as arguments.

Each process ID is followed by a letter code. These letter codes are interpreted as follows. If the process is using the file as

c

Indicates that the process is using the file as its current directory

e

Indicates that the process is monitoring the file for file events. For more information, see the port_associate(3C) man page

m

Indicates that the process is using a file mapped with mmap(2). See mmap(2) for details.

n

Indicates that the process is holding a non-blocking mandatory lock on the file

o

Indicates that the process is using the file as an open file

r

Indicates that the process is using the file as its root directory

t

Indicates that the process is using the file as its text file

y

Indicates that the process is using the file as its controlling terminal

For block special devices with mounted file systems, all processes using any file on that device are listed. For all types of files (text files, executables, directories, devices, and so forth), only the processes using that file are reported.

For all types of devices, fuser also displays any known kernel consumers that have the device open. Kernel consumers are displayed in one of the following formats:

[module_name]
[module_name,dev_path=path]
[module_name,dev=(major,minor)]
[module_name,dev=(major,minor),dev_path=path]

If more than one group of files are specified, the options may be respecified for each additional group of files. A lone dash cancels the options currently in force.

The process IDs are printed as a single line on the standard output, separated by spaces. All other output, including the single terminating newline, is written on standard error.

Any user can run fuser, but the {PRIV_PROC_OWNER} privilege is required to send a signal to another user's process.

Options

The following options are supported:

–c

Reports on files that are mount points for file systems, and any files within that mounted file system.

–d

Report device usage information for all minor nodes bound to the same device node as the specified minor node. This option does not report file usage for files within a mounted file system.

–f

Prints a report for the named file, not for files within a mounted file system

–k

Equivalent to –s KILL or –s 9.

–l

Prevents resolving the symlinks to target file

–n

Lists only processes with non-blocking mandatory locks on a file

–s sig

Sends a signal to each process. The sig option argument specifies one of the symbolic names defined in the <signal.h> header, or a decimal integer signal number. If sig is a symbolic name, it is recognized in a case-independent fashion, without the SIG prefix. No signals will be sent to kernel file consumers or file event monitors. For more information, see the kill(2) and signal.h(3HEAD) man pages.

–u

Displays the user login name in parentheses following the process ID.

Examples

Example 1 Reporting on the Mount Point and Files

The following example reports on the mount point and files within the mounted file system.

example% fuser -c /export/foo
Example 2 Restricting Output when Reporting on the Mount Point and Files

The following example reports on the mount point and files within the mounted file system, but the output is restricted to processes that hold non-blocking mandatory locks.

example% fuser -cn /export/foo
Example 3 Sending SIGTERM to Processes Holding a Non-blocking Mandatory Lock

The following command sends SIGTERM to any processes that hold a non-blocking mandatory lock on file /export/foo/my_file.

example% fuser -fn -s term /export/foo/my_file

Environment Variables

See environ(7) for descriptions of the following environment variables that affect the execution of fuser: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/core-os
Interface Stability
Committed
Standard

See Also

pfiles(1), ps(1), kill(2), mmap(2), port_associate(3C), signal(3C), signal.h(3HEAD), attributes(7), environ(7), privileges(7), standards(7), mount(8)

Notes

Because fuser works with a snapshot of the system image, it may miss processes that begin using a file while fuser is running. Also, processes reported as using a file may have stopped using it while fuser was running. These factors should discourage the use of the –k option.