Explicación

Explicación

¿Cómo puedo obtener la siguiente información para un proceso de Linux en ejecución?

  • variables de entorno del shell
  • directorio de trabajo
  • opciones de línea de comando

Respuesta1

Puedes obtener esta información de/procesosistema de archivos, almacena información sobre los procesos en ejecución.

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

Respuesta2

Si genera el entorno como lo sugiere @atype, obtendrá todas las variables de entorno y sus valores concatenados sin separador.

Para obtener un mejor resultado, utilice

$ 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

(salida abreviada por motivos de privacidad)

Explicación

/proc/$pid/environ contiene las variables de entorno como una lista separada por nulos.

xargs es una herramienta para leer una lista arbitrariamente larga de *STDIN y envía sus elementos a una herramienta (echo en este caso) asegurando no exceder la longitud máxima de la línea de comando. El parámetro "-0" cambia xargs para usar nulo como separador de elementos (en lugar del espacio en blanco o nueva línea predeterminado). El parámetro "-L 1" limita el número de elementos a 1. De este modo, cada variable de entorno se genera en una nueva línea.

información relacionada