当前位置: 代码网 > 服务器>服务器>Linux > 通过Linux进程id找到程序路径的三种方法

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

2025年11月27日 Linux 我要评论
在 linux 中,最直接、最可靠的方法是利用 /proc 文件系统。假设你的进程 id (pid) 是 12345,你可以使用以下几种方式:方法一:最直观的方法 (ls)linux 的每个进程在 /

在 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找到程序路径内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com