在 Linux 系统中,可以通过以下几种方式查看当前运行进程相关的文件信息:
lsof
命令(推荐)lsof
(List Open Files) 可以列出被进程打开的文件:
sudo lsof -p <PID> # 查看指定进程打开的文件
sudo lsof -c <进程名> # 查看指定名称进程打开的文件
sudo lsof -i # 查看网络相关的文件
sudo lsof -u <用户名> # 查看指定用户打开的文件
/proc
文件系统每个进程在 /proc
下有以 PID 命名的目录,包含进程的详细信息:
ls -l /proc/<PID>/fd # 查看进程打开的文件描述符
cat /proc/<PID>/maps # 查看进程的内存映射文件
cat /proc/<PID>/cmdline # 查看进程的启动命令
ps
命令查看进程信息ps aux # 查看所有运行中的进程
ps -ef | grep <进程名> # 查找特定进程
pmap
查看进程内存映射pmap <PID> # 显示进程的内存映射(包含文件)
strace
跟踪系统调用strace -p <PID> -e trace=file # 实时跟踪进程的文件操作
# 1. 先找到进程PID
pgrep nginx
# 2. 查看该进程打开的文件
sudo lsof -p $(pgrep nginx) | grep '\.conf'
/proc
中的内容是动态生成的,不是真实存储在磁盘上的文件lsof -i
查看这些工具的组合使用可以帮助你全面了解进程正在使用或打开的文件资源。