Jak uzyskać informacje o działającym procesie Linux

1

Jak mogę uzyskać następujące informacje o działającym procesie Linux:

  • powłoki zmienne środowiskowe
  • katalog roboczy
  • opcje wiersza poleceń
użytkownik 28795
źródło

Odpowiedzi:

3

Możesz uzyskać te informacje z systemu plików / proc , który przechowuje informacje o uruchomionych procesach.

  • cat /proc/<pid>/environ
  • cd /proc/<pid>/cwd; pwd -P
  • cat /proc/<pid>/cmdline
typ
źródło
cd /proc/<pid>/cwd; pwd -Plub krótszyreadlink -e /proc/<pid>/cwd
ksenoid
lub nawet krócej,pwdx <pid>
typ
2

Jeśli wyprowadzasz środowisko zgodnie z sugestią @ typu, wszystkie zmienne środowiskowe i ich wartości są łączone bez separatora.

Aby uzyskać lepszą wydajność, użyj

$ 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

(wydajność skrócona ze względu na prywatność)

Wyjaśnienie

/ proc / $ pid / Environment zawiera zmienne środowiskowe jako listę rozdzieloną zerami.

xargs to narzędzie do odczytu dowolnej listy z * STDIN i przekazuje jej elementy do narzędzia (w tym przypadku echa), zapewniając, aby nie przekraczać maksymalnej długości wiersza poleceń. Parametr „-0” przełącza xargs na wartość null jako separator pozycji (zamiast domyślnego pustego lub nowego wiersza), parametr „-L 1” ogranicza liczbę elementów do 1. W ten sposób każda zmienna środowiskowa jest wyprowadzana w nowym wierszu.

Jochen Lutz
źródło