在某处搜索后终于没有得到我想要的。

我正在一些带有 linux 系统的嵌入式板卡上工作。许多用户通过 telnet 访问它。所以每个用户都假设在某处复制一些二进制文件并像 ./binary 一样执行。所以我可以看到这个进程通过简单的 ps 命令运行,但我不知道它从哪里运行。

某处发现,使用 which 命令,但根据我的理解(如果我没有错) which 命令只查找该二进制文件的路径,无论它当前是否正在执行。

如果多个用户在不同的路径复制相同的二进制文件怎么办?

还查看了另一种使用 readlink 的解决方案,但我的目标板支持的 busybox binary 有限。所以 readlink 不存在。

另一种解决方案,如
file /proc/"proess id"/exe 但这里不存在 file 命令,因为我的板上的客户 linux 只包含有限的功能和二进制文件。

那么还有其他解决方案吗?

最佳答案

尝试 ls -l /proc/"proess id"/exe 。来自 GNU coreutils 的 ls 实用程序显示了带有 -l 选项的链接,但我没有关于 lsbusybox 的确切信息。

关于linux - 如何从当前运行的二进制文件中找到路径?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22785159/

10-13 07:25