【问题标题】:Bash: get canonical path and args from pidBash:从 pid 获取规范路径和参数
【发布时间】:2016-05-24 09:00:59
【问题描述】:

是否有一种简单的方法可以获取运行某个进程 (pid) 的规范路径和参数。

例如,对于进程 1445,我想获得: /usr/bin/xclock -digital

我想做的是:

$ ls -l /proc/1445 | grep exe

得到类似的东西 ....... -> /usr/bin/xclock

然后

$ ps 1445 | cut -b 28- | tail -n 1

获取xclock -digital

最后将这两个输出放在一起。我认为这可行,但我认为应该有更好的方法来做到这一点。

我们将不胜感激。

【问题讨论】:

    标签: linux bash process pid


    【解决方案1】:

    您可以解析/proc/$PID/cmdline 的内容以获取路径和参数(有关详细信息,请参阅How to parse /proc/pid/cmdline)。

    规范路径可以通过realpath(1)获取。

    【讨论】:

    • 如果 PATH 在执行时是否有效,例如xclock 设置为使用与例如不同的 xclock /home/user/bin/xclock? (在“正常”路径中的 /usr/bin 中有另一个 xclock)。或者是否需要从 ps 输出中进一步分析环境?
    • 是的,它应该可以工作,但如果您只是调用xclock,您将不会知道哪个 xclock 正在运行。想知道运行的是哪个程序,可以看/proc/$PID/exe
    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2011-05-09
    • 2022-06-10
    • 2017-04-15
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多