260227-Linux-pid-proc(exe & cwd & fd & cmdline)查找文件位置

sudo netstat -tulnp | grep :<端口号>

  • -t:TCP 端口
  • -u:UDP 端口
  • -l:仅显示监听套接字
  • -n:不解析服务名(直接显示端口号)
  • -p:显示进程 PID 和名称

根据 PID 查找相关文件位置

有了 PID,就可以查看该进程的详细信息:

1️⃣ 找到进程的可执行文件路径

1
ls -l /proc/<PID>/exe

示例:ls -l /proc/12345/exe 会显示指向实际可执行文件的符号链接。

2️⃣ 找到进程的当前工作目录

1
pwdx <PID>

或者:

1
readlink /proc/<PID>/cwd

3️⃣ 查看进程打开的所有文件(包括配置文件、日志文件等)

1
ls -l /proc/<PID>/fd/

这列出了该进程打开的所有文件描述符,通过符号链接可以看到实际的文件路径。

4️⃣ 查看进程的完整命令行参数(可能包含配置文件路径)

1
2
3
ps -ef | grep <PID>
# 或者
cat /proc/<PID>/cmdline | tr '\0' ' '

cmdline 文件以 \0 分隔参数,用 tr 转换为空格以便阅读。

5️⃣ 如果进程是一个服务(systemd 管理的),可以查看其单元文件

1
2
systemctl status <服务名>   # 先找到服务名
systemctl cat <服务名> # 查看服务配置文件,其中可能包含 ExecStart 等路径