Erläuterung

Erläuterung

Wie kann ich die folgenden Informationen für einen laufenden Linux-Prozess erhalten:

  • Shell-Umgebungsvariablen
  • Arbeitsverzeichnis
  • Befehlszeilenoptionen

Antwort1

Diese Informationen erhalten Sie von/procDateisystem, es speichert Informationen über laufende Prozesse.

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

Antwort2

Wenn Sie die Umgebung wie von @atype vorgeschlagen ausgeben, erhalten Sie alle Umgebungsvariablen und deren Werte ohne Trennzeichen aneinandergereiht.

Für eine bessere Ausgabe verwenden Sie

$ 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

(Ausgabe aus Datenschutzgründen gekürzt)

Erläuterung

/proc/$pid/environ enthält die Umgebungsvariablen als nullgetrennte Liste.

xargs ist ein Tool, das beliebig lange Listen aus *STDIN liest und deren Elemente an ein Tool (in diesem Fall echo) weiterleitet, wobei darauf geachtet wird, dass die maximale Kommandozeilenlänge nicht überschritten wird. Der Parameter "-0" stellt xargs so ein, dass als Trennzeichen für Elemente null verwendet wird (anstelle des standardmäßigen Leerzeichens oder Zeilenumbruchs). Der Parameter "-L 1" begrenzt die Anzahl der Elemente auf 1. Dabei wird jede Umgebungsvariable in einer neuen Zeile ausgegeben.

verwandte Informationen