Ищете env vars для PID в BASH для скрипта BASH - PullRequest
2 голосов
/ 29 июля 2009

Есть ли способ сделать это?

У меня есть скрипт, который экспортирует несколько переменных и запускает компонент.

Я ищу, чтобы узнать фактические значения некоторых из этих переменных во время работы процесса. (Это применимо здесь, потому что я буду включать эти значения в другой скрипт / программу)

Сами переменные зависят от PID (я новичок в этом, если это не очевидно. Хаха!)

Спасибо!

Ответы [ 5 ]

4 голосов
/ 29 июля 2009

Вы можете запросить / proc / PID / environment для всех определенных envvars

0 голосов
/ 13 января 2011

Если это Linux, вы можете сделать:

xargs -0 printf '%s\n' < /proc/${pid}/environ
0 голосов
/ 17 сентября 2009

Хм, если я правильно понял - думаю, я бы заставил скрипт ответить на сигнал "kill", чтобы извлечь информацию о времени выполнения с помощью "trap". Вы можете написать метаданные в stdout потенциально.

Может, перехватить SIGHUP в вашем скрипте и заставить его писать в stdout?

0 голосов
/ 30 июля 2009

Я проверил файл окружения для этого процесса, но, как ни странно, он сам по себе не содержит всех определенных переменных env для этого процесса.

Экспортируемые переменные будут специфичны для процесса, но я не всегда буду знать их. Я ищу запрос, какие env-переменные являются конкретными и объявлены для процесса, и каковы их значения.

0 голосов
/ 29 июля 2009

Я не уверен, что понимаю ваш вопрос. но ... Если вы в своем bash-скрипте экспортируете некоторые переменные среды, то это будет происходить в среде процесса, который он выполняет (так как дочерний процесс получает всю переменную среды процесса, в котором он создан).

...