解释

解释

如何获取正在运行的 Linux 进程的以下信息:

  • shell 环境变量
  • 工作目录
  • 命令行选项

答案1

您可以从以下位置获取此信息/进程文件系统,它存储有关正在运行的进程的信息。

  • cat /proc/<pid>/environ
  • cd /proc/<pid>/cwd; pwd -P
  • cat /proc/<pid>/cmdline

答案2

如果您按照@atype的建议输出环境,您将获得所有环境变量及其不带分隔符的连接值。

为了获得更好的输出,使用

$ xargs -0 -L 1 echo < /proc/21645/environ 
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SHELL=/bin/bash
TERM=xterm
LC_MESSAGES=en_US.UTF-8
LANGUAGE=en_US.UTF-8

(出于隐私原因输出已缩短)

解释

/proc/$pid/environ 包含环境变量作为以空值分隔的列表。

xargs 是一种从 *STDIN 读取任意长列表并将其元素提供给工具(在本例中为 echo)的工具,以确保不超过最大命令行长度。参数“-0”可切换 xargs 使用 null 作为项目分隔符(而不是默认的空格或换行符),参数“-L 1”将项目数限制为 1。因此,每个环境变量都会在新行上输出。

相关内容