【发布时间】:2009-07-29 19:24:40
【问题描述】:
有什么办法吗?
我有一个脚本可以导出几个变量并运行一个组件。
我希望在进程运行时找出其中一些变量的实际值。 (此处适用,因为我会将这些值合并到另一个脚本/程序中)
变量本身是特定于 PID 的(如果这不是很明显,我对此很陌生。哈哈!)
谢谢!
【问题讨论】:
有什么办法吗?
我有一个脚本可以导出几个变量并运行一个组件。
我希望在进程运行时找出其中一些变量的实际值。 (此处适用,因为我会将这些值合并到另一个脚本/程序中)
变量本身是特定于 PID 的(如果这不是很明显,我对此很陌生。哈哈!)
谢谢!
【问题讨论】:
您可以在 /proc/PID/environ 中查询所有已定义的环境变量
【讨论】:
我不确定我是否理解您的问题。但 ... 如果您在 bash 脚本中导出一些环境变量,那么这将在它正在执行的进程的环境中(这是因为子进程派生了创建它的进程的所有环境变量)。
【讨论】:
我检查了该进程的环境文件,但奇怪的是,它本身并没有包含为该进程定义的所有环境变量。
导出的变量将特定于某个进程,但我并不总是知道它们。我正在寻找查询哪些环境变量是特定的并为进程声明的,以及它们的值是什么。
【讨论】:
嗯,如果我理解正确 - 我想我会让脚本响应“kill”信号,以便使用“trap”提取它的运行时信息。您可能会将元数据写入标准输出。
也许在您的脚本中捕获 SIGHUP,并使其写入标准输出?
【讨论】:
如果是 Linux,你可以这样做:
xargs -0 printf '%s\n' < /proc/${pid}/environ
【讨论】: