通过Linux进程id找到程序路径的三种方法

 更新时间:2025年11月27日 09:42:33   作者:会飞的土拨鼠呀  
这篇文章主要介绍了三种在Linux中通过进程ID(PID)找到程序路径的方法:使用`ls`命令查看`/proc/PID/exe`符号链接,使用`readlink`命令直接获取路径字符串,以及使用`pwdx`命令查看进程的工作目录,需要的朋友可以参考下

在 Linux 中,最直接、最可靠的方法是利用 /proc 文件系统。

假设你的进程 ID (PID) 是 12345,你可以使用以下几种方式:

方法一:最直观的方法 (ls)

Linux 的每个进程在 /proc 目录下都有一个对应的文件夹。exe 是一个符号链接,指向实际的二进制文件路径。

ls -l /proc/12345/exe

输出示例:

lrwxrwxrwx 1 root root 0 Nov 26 10:00 /proc/12345/exe -> /opt/app/my_go_program

箭头 -> 后面的 /opt/app/my_go_program 就是该程序的绝对路径。

方法二:最干净的方法 (readlink)

如果你只需要路径字符串(例如用于脚本中),可以使用 readlink 命令,它只输出目标路径,不包含其他信息。

readlink -f /proc/12345/exe

输出示例:

/opt/app/my_go_program

方法三:使用pwdx(注意区别)

有时候你可能想知道程序是在哪个目录下运行的(工作目录),而不是程序文件本身在哪里。这时用 pwdx

pwdx 12345

输出示例:

12345: /home/user/data

这表示程序虽然可能在 /usr/bin 里,但它是在 /home/user/data 目录下被启动的。

特殊情况提示

Permission denied
如果进程属于其他用户(如 root),你需要加上 sudo
sudo ls -l /proc/12345/exe

显示 (deleted)
如果你在 Go 程序运行时覆盖了二进制文件(例如发布新版本时直接 cp 覆盖),你可能会看到这样的输出:
/opt/app/my_go_program (deleted)
这意味着内存中运行的进程对应的磁盘文件已经被删除了或替换了,但进程仍在运行旧版本的代码。

到此这篇关于通过Linux进程id找到程序路径的三种方法的文章就介绍到这了,更多相关Linux进程id找到程序路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • CentOS8查看IP报错:bash:ifconfig:command not found的原因及解决方案

    CentOS8查看IP报错:bash:ifconfig:command not found的原因及解

    在使用 CentOS 8 系统时,有时会遇到使用 ​​ifconfig​​ 命令查看网络接口信息时出现 ​​bash: ifconfig: command not found​​ 的错误,所以本文给大家介绍了报错的原因和解决方案,需要的朋友可以参考下
    2025-03-03
  • Linux 下解压 rar 文件的方法

    Linux 下解压 rar 文件的方法

    这篇文章主要介绍了Linux 下解压 rar 文件的方法,需要的朋友可以参考下
    2018-07-07
  • Linux查看文件大小的几种方法汇总

    Linux查看文件大小的几种方法汇总

    这篇文章主要介绍了Linux查看文件大小的几种方法汇总,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 虚拟机中CentOS7设置固定IP地址的方法

    虚拟机中CentOS7设置固定IP地址的方法

    这篇文章主要介绍了虚拟机中CentOS7设置固定IP地址的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • MacOS实现连接Linux NFS服务器过程

    MacOS实现连接Linux NFS服务器过程

    本文详细介绍了如何在Ubuntu服务器上设置NFS共享,并提供Mac客户端连接NFS服务的步骤,同时,还讨论了常见问题排查方法和insecure参数的作用,帮助用户更好地理解和配置NFS服务
    2025-10-10
  • Linux环境部署DNF仓库以及配置NFS共享服务

    Linux环境部署DNF仓库以及配置NFS共享服务

    本文详细介绍了如何在Linux环境下部署DNF仓库和配置NFS共享服务,DNF仓库主要用于集中管理软件包,而NFS共享服务则用于多系统间的文件共享,文章涵盖了从仓库部署、软件包同步到NFS配置和客户端访问的全过程,为系统管理员提供了全面的指导
    2025-04-04
  • Linux查看服务器开放和启用的端口的方法步骤

    Linux查看服务器开放和启用的端口的方法步骤

    本文介绍Linux查看开放端口的多种方法,包括ss、netstat、lsof、firewall-cmd、iptables及nmap,适用于监听端口、防火墙规则检查与端口扫描等场景,需要的朋友可以参考下
    2025-08-08
  • 关于VPS内存不足的一些说明和解决办法

    关于VPS内存不足的一些说明和解决办法

    关于VPS内存不足的一些说明和解决办法,需要的朋友可以参考下。
    2011-11-11
  • 解决安装apache时端口号被占用的问题

    解决安装apache时端口号被占用的问题

    下面小编就为大家带来一篇解决安装apache时端口号被占用的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 如何实现在Linux上执行exe文件

    如何实现在Linux上执行exe文件

    这篇文章主要介绍了在Linux上执行exe文件实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09

最新评论