fuser
Overview
fuser lists PIDs using a file, mount point, or network port. It is a concise complement to lsof: faster for “who is blocking my umount?” and optional signaling of those processes.
Syntax
fuser [options] name...Common Options
| Option | Description |
|---|---|
-v |
Verbose (USER, PID, ACCESS, COMMAND) |
-m |
Argument is a mount / filesystem |
-k |
Kill processes (default SIGKILL with -k alone on many builds—confirm man) |
-i |
Interactive confirm before kill |
-n tcp\|udp |
Namespace for ports |
-u |
Append user |
-4 / -6 |
Address family |
-M |
Check is a mountpoint |
signal |
e.g. -TERM before -k on some implementations |
Access codes (verbose): c current dir, e executable, f open file, r root dir, m mmap, etc.
Key Use Cases
- Find processes preventing
umount - See who holds a TCP/UDP port
- Signal processes holding a lock file
Examples with Explanations
Mount busy
sudo fuser -vm /mnt/data
sudo fuser -vm /mnt/data # review
# last resort:
sudo fuser -kim /mnt/data # interactive kill on mountPorts
sudo fuser -v 22/tcp
sudo fuser -v 8080/tcp
sudo fuser -n tcp 5432Prefer also: ss -ltnp | grep 8080.
Files
fuser -v /var/log/app.log
fuser -ki file.lockOne-liner recipes
# Before umount
sudo fuser -vm /mnt && sudo umount /mnt
# Who owns this listening port?
sudo ss -ltnp | grep ':8080'
sudo fuser -v 8080/tcpNotes & Pitfalls
-kis destructive—always-vfirst; prefer-i.- Default signal behavior differs slightly by util-linux version—read
man fuseron the host. - Network namespace: ports need
tcp/udpsuffix or-n. - Containers: fuser inside vs on host sees different process IDs/namespaces.
2026-relevant notes
- For listeners,
ss -lntpis usually clearer than fuser alone. - Combine with
lsof -tfor scripts that need PID lists. - Lazy umount (
umount -l) hides problems—fix the holders when possible.
Additional Resources
man fuser