Как я могу получить следующую информацию для работающего процесса Linux:
- переменные среды оболочки
- рабочий каталог
- параметры командной строки
Как я могу получить следующую информацию для работающего процесса Linux:
Вы можете получить эту информацию из файловой системы /proc , в которой хранится информация о запущенных процессах.
cat /proc/<pid>/environ
cd /proc/<pid>/cwd; pwd -P
cat /proc/<pid>/cmdline
Если вы выводите среду в соответствии с предложением @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/environment содержит переменные окружения в виде списка, разделенного нулями.
xargs - это инструмент для чтения произвольно длинного списка из * STDIN, который передает его элементы в инструмент (в данном случае эхо), гарантируя, что он не превысит максимальную длину командной строки. Параметр "-0" переключает xargs для использования нулевого значения в качестве разделителя элементов (вместо пробела по умолчанию или новой строки). Параметр "-L 1" ограничивает количество элементов до 1. Таким образом, каждая переменная среды выводится на новой строке.