lsof is a practical tool for viewing the files that the process is using. The basic command is lsof -p PID. 1. You need to search the process ID first through ps or pgrep. 2. After executing the command, you can see all files and network connections opened by the process. 3. The key fields in the output include COMMAND, PID, USER, FD, TYPE and NAME. 4. You can use common combinations such as lsof -i -p PID to display network connections, lsof -u username to check all process files of a user, lsof -i :80 to view port occupation, lsof -p PID -r 1 to monitor changes in real time. 5. Note that you need permission to view other user processes. When not installed, you can install them through the package manager. If you find resource leaks, you should further troubleshoot the code or configuration.
lsof
(List Open Files) is a very practical command-line tool when you want to view the files a process is using. It can be used in both Linux and macOS systems to troubleshoot the relationship between processes and files.
Basic command format
To see which files are opened by a process, the basic command structure is as follows:
lsof -p PID
Where PID
is the process ID you want to query. After execution, you will see all the files opened by this process, including regular files, network connections, devices, etc.
Find process ID
Before using lsof
, you usually need to know the PID of the target process. You can use ps
or pgrep
to find:
Use
ps
to find:ps aux | grep process name
Use
pgrep
to get the PID directly:pgrep process name
For example, if you want to check the process ID of nginx, you can run:
pgrep nginx
If multiple results are returned, it means that there are multiple instances running.
Common output fields description
After running lsof -p PID
, you will see an output similar to the following:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 6u IPv4 123456 0t0 TCP *:http (LISTEN) nginx 1234 root 7u IPv6 123457 0t0 TCP *:http (LISTEN) nginx 1234 root 8w REG 8,1 1024 1234 /var/log/nginx/access.log
The key columns are explained as follows:
- COMMAND : Process name
- PID : Process ID
- USER : The user running the process
- FD : File descriptor number and type (such as cwd, txt, mem, 0u, 1w, etc.)
- TYPE : file type (such as REG represents a normal file, IPv4/IPv6 represents a network connection)
- NAME : File or network address
Through this information, you can determine whether a process has a specific log file, configuration file, or network port.
Common options combinations
The following are some practical lsof
combination commands suitable for different scenarios:
Only the files related to the network connection are displayed:
lsof -i -p PID
Displays files opened by all processes running by a user:
lsof -u username
Check which process takes up a port (such as port 80):
lsof -i:80
Real-time monitoring of changes (refreshed once every second):
lsof -p PID -r 1
These combinations can be flexibly combined according to specific issues.
Notes and FAQs
-
sudo
is required to view other users' processes. -
lsof
is not installed by default on some systems, and can be installed through a package manager (such asapt install lsof
orbrew install lsof
). - If you find that a process occupies a large number of files but is not released, it may be a resource leak and further troubleshooting of the code or configuration is required.
Basically that's it. Mastering a few common commands can quickly locate most file or network-related problems.
The above is the detailed content of How to check for open files by a process using lsof?. For more information, please follow other related articles on the PHP Chinese website!
-

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Are you looking for good software to write mathematical equations? If so, this article provides the top 5 equation editors that you can easily install on your favorite Linux distribution.In addition to being compatible with different types of mathema

Linux administrators should be familiar with the command-line environment. Since GUI (Graphical User Interface) mode in Linux servers is not commonly installed.SSH may be the most popular protocol to enable Linux administrators to manage the servers

PPA is an important tool for Ubuntu users to expand their software sources. 1. When searching for PPA, you should visit Launchpad.net, confirm the official PPA in the project official website or document, and read the description and user comments to ensure its security and maintenance status; 2. Add PPA to use the terminal command sudoadd-apt-repositoryppa:/, and then run sudoaptupdate to update the package list; 3. Manage PPAs to view the added list through the grep command, use the --remove parameter to remove or manually delete the .list file to avoid problems caused by incompatibility or stopping updates; 4. Use PPA to weigh the necessity and prioritize the situations that the official does not provide or require a new version of the software.

Gogo is a remarkable tool to bookmark directories inside your Linux shell. It helps you create shortcuts for long and complex paths in Linux. This way, you no longer need to type or memorize lengthy paths on Linux.For example, if there's a directory

LXD is described as the next-generation container and virtual machine manager that offers an immersive for Linux systems running inside containers or as virtual machines. It provides images for an inordinate number of Linux distributions with support

How to quickly generate test files of a specified size? It can be achieved using command line tools or graphical software. On Windows, you can use fsutilfilecreatenew file name size to generate a file with a specified byte; macOS/Linux can use ddif=/dev/zeroof=filebs=1Mcount=100 to generate real data files, or use truncate-s100M files to quickly create sparse files. If you are not familiar with the command line, you can choose FSUtilGUI, DummyFileGenerator and other tool software. Notes include: pay attention to file system limitations (such as FAT32 file size upper limit), avoid overwriting existing files, and some programs may

Node Version Manager (NVM) is a simple bash script that helps manage multiple Node.js versions on your Linux system. It enables you to install various Node.js versions, view available versions for installation, and check already installed versions.NV

The key to installing dual systems in Linux and Windows is partitioning and boot settings. 1. Preparation includes backing up data and compressing existing partitions to make space; 2. Use Ventoy or Rufus to make Linux boot USB disk, recommend Ubuntu; 3. Select "Coexist with other systems" or manually partition during installation (/at least 20GB, /home remaining space, swap optional); 4. Check the installation of third-party drivers to avoid hardware problems; 5. If you do not enter the Grub boot menu after installation, you can use boot-repair to repair the boot or adjust the BIOS startup sequence. As long as the steps are clear and the operation is done properly, the whole process is not complicated.
