Today, I will describe how to display environment variables associated with the running process.
Take advantage of proc file-system to print contents of the /proc/<strong>ProcessID</strong>/environ
file.
$ sudo cat /proc/1/environ | tr '\0' '\n'
HOME=/ init=/sbin/init recovery= TERM=linux drop_caps= BOOT_IMAGE=/vmlinuz-4.4.0-21-generic PATH=/sbin:/usr/sbin:/bin:/usr/bin PWD=/ rootmnt=/root
Use pgrep
and xargs
to display the environment for multiple processes at the same time.
$ pgrep mint | xargs -r -I {} sh -c "echo \"* Process {}: \$(cat /proc/{}/cmdline)\"; sudo cat /proc/{}/environ;" | tr '\0' '\n'
* Process 26898: /usr/bin/python3/usr/bin/mintupdate-launcher USER=milosz HOME=/home/milosz DESKTOP_SESSION=cinnamon USERNAME=milosz PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games SESSION_MANAGER=local/runner:@/tmp/.ICE-unix/26588,unix/runner:/tmp/.ICE-unix/26588 DISPLAY=:0 LANG=pl_PL.UTF-8 XAUTHORITY=/home/milosz/.Xauthority SHELL=/bin/bash PWD=/home/milosz * Process 26904: /usr/bin/python3/usr/lib/linuxmint/mintUpdate/mintUpdate.py USER=milosz HOME=/home/milosz DESKTOP_SESSION=cinnamon USERNAME=milosz PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games SESSION_MANAGER=local/runner:@/tmp/.ICE-unix/26588,unix/runner:/tmp/.ICE-unix/26588 DISPLAY=:0 LANG=pl_PL.UTF-8 XAUTHORITY=/home/milosz/.Xauthority SHELL=/bin/bash PWD=/home/milosz
Just remember to replace null byte `` as it is used to separate entries.