By Oltjano Terpollari
fuser command is a Linux utility designed to find which process is using a given file, directory, or socket. It also provides information about the user owning running that process, and the type of access.
You can review the
fuser manual page to get an overview of all of the options to use with
fuser. You can also run
fuser on its own without any options to get an overview of
OutputNo process specification given Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME... fuser -l fuser -V Show which processes use the named files, sockets, or filesystems. -a,--all display unused files too -i,--interactive ask before killing (ignored without -k) -k,--kill kill processes accessing the named file -l,--list-signals list available signal names -m,--mount show all processes using the named filesystems or block device -M,--ismountpoint fulfill request only if NAME is a mount point -n,--namespace SPACE search in this name space (file, udp, or tcp) -s,--silent silent operation -SIGNAL send this signal instead of SIGKILL -u,--user display user IDs -v,--verbose verbose output -w,--writeonly kill only processes with write access -V,--version display version information -4,--ipv4 search IPv4 sockets only -6,--ipv6 search IPv6 sockets only - reset options udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]
fuser can also be used with -v option, which runs the tool in verbose mode. The verbose option is used to produce more output so the user can observe what
fuser is doing. Run
fuser on the current directory,
., while including the
- fuser -v .
OutputUSER PID ACCESS COMMAND /home/sammy: sammy 17604 ..c.. bash
In this case, the only process running in this directory is the interactive
bash shell that you are running commands from right now.
When run in verbose mode, the
fuser utility gives information about the
COMMAND of a process. The
c character under
ACCESS shows the type of access, in this case meaning the current directory. There are other access types, such as executable being run, root directory, open file, and mapped file or shared library.
You may also need to look up processes using TCP and UDP sockets. To demonstrate this example, you’ll first use
nc to create a TCP listener on port 8002, so that there is a running process you can observe:
- nc -l -p 8002
This will block the terminal as long as it’s running. In another terminal window, use
fuser to find the process running on TCP port 8002 with the
- fuser -v -n tcp 8002
OutputUSER PID ACCESS COMMAND 8002/tcp: sammy 17985 F.... nc
Note: By default, the
fuser tool will check both IPv4 and IPv6 sockets, but you can change this with the
-6 options to check only IPv4 or only IPv6 connections, respectively.
This output shows that the process id (
PID) of the process using netcat is
17985 and the command which was used to launch it is ‘nc’. The process id (PID) can be used in many ways, including to stop or kill a running process. You can learn more about process management by reading How To Use ps, kill, and nice to Manage Processes in Linux. You can also use
fuser itself to kill processes running on specific ports by using the
- fuser -k 8002/tcp
If you navigate back to your first terminal window, you will notice that the
nc program has been killed and returned to the shell.
The fuser utility can also be used to send specific signals to a process. When used with the -k option, the fuser command sends the KILL signal to a process. There are many other signals that can be sent to a specific running process. You can list these with
- fuser -l
OutputHUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
In this article, you learned some example uses of
fuser to monitor in-use ports and directories on a Linux system.
fuser can be particularly useful when you’re trying to understand what unknown processes may be running on your system.
Next, you may want to learn how to use
du to monitor other server resources.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Click below to sign up and get $200 of credit to try our products over 60 days!