【问题标题】:Find path of python program in execution查找执行中的python程序的路径
【发布时间】:2018-11-02 12:58:20
【问题描述】:

在我的终端中,我可以看到一个正在执行的 python 程序:

python3 app.py

在哪里可以找到app.py

我尝试查看 /proc/$pid/exe,但链接到 python 解释器。

我的系统中有许多app.py 程序,我想确切地找出使用该pid 执行的程序。

【问题讨论】:

  • 您的app.py 文件在哪里?去那里跑python3 app.py
  • @zimdero 这是我的实际问题。我怎样才能找到这个 app.py 文件?
  • find / -type f -name "app.py"
  • 谢谢@0x00,我也试过updatedblocate app.py,但我有好几个。
  • 不是在那个shell进程的当前目录下吗?

标签: python linux bash terminal


【解决方案1】:

如果您使用的是 Mac Os X,请尝试使用:

sudo find / -type f -fstype local -iname "app.py"

如果您使用 Mac Os X,则可以使用:

sudo find / -mount -type f -iname "app.py"

find 命令将从您的根文件夹开始并递归搜索所有名为“app.py”的文件(不区分大小写)。

【讨论】:

  • 我不建议这样做。尽管此解决方案可能看起来更简单,但它扫描您的整个文件系统。如果您挂载了一些远程共享,运行此命令将需要很长时间才能完成,这会给您的硬盘、网络和耐心带来压力。
  • 您的更新有误。 local 不是有效的文件系统类型。
  • 正确,它仅在 Mac 上有效。还添加了 GNU 查找详细信息。 @AndrejsCainikovs
【解决方案2】:

我在我的机器上运行了一个简短的测试并想出了这个......也许它有帮助:

  1. 找到相关工作的进程IDPID

    $ ps -u $USER -o pid,cmd | grep app.py

    PID 将位于第一列。将此数字分配给变量PID

  2. 找到该作业的当前工作目录:

    $ ls -l /proc/$PID/cwd

    (更多信息:cat $ cat /proc/$PID/environ

您的app.py 文件将在此目录中。

【讨论】:

  • 我认为(但没有检查)environ 将包含PWD,就像启动进程时一样,而cwd 将反映当前工作目录,如果脚本执行chdir
  • 您好! Environ 中没有 PWD 变量,并且显然没有有用的信息。通过检查 CWD 文件,我发现该程序位于 docker contianer 中,该文件表明 cwd 是 /app 显然不在我的根目录中。非常感谢!
【解决方案3】:

检查文件

/proc/[PID]/environ

有一个 PWD 变量包含包含可执行文件的目录的完整路径。

【讨论】:

  • 谢谢,但显然那里没有 PWD 目录。
  • 它是/proc/[PID]/environ 文件中的变量
猜你喜欢
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多