シェルの環境変数はenvコマンドで確認できますが、そこから起動したプロセスであっても、必ずしも同じ環境変数を使っているとは限りません。ここでは起動中のプロセスが適用している環境変数の確認方法を紹介します
確認方法
基本的な方法
起動中の環境変数を確認するには /proc ディレクトリの environ を見ます
# cat /proc/%プロセスID%/environ
プロセスIDはpsコマンドなどで確認してください
実行例
root@vm-linux64:~# cat /proc/595/environ
CONSOLE=/dev/consoleSHELL=/bin/shTERM=linuxINIT_VERSION=sysvinit-2.88PATH=/sbin:/usr/sbin:/bin:/usr/binRUNLEVEL=3PWD=/PREVLEVEL=NSHLVL=1HOME=/BOOT_IMAGE=Linux_=/usr/sbin/crond
改行で見やすくする
値が'\0'区切りで連結されていますが、画面では一行に繋がって見えにくくなってます。
見やすくするには sed コマンドで改行に変えると良いでしょう
# sed -e 's/\x0/\n/g' /proc/%プロセスID%/environ
実行例
root@vm-linux64:~# sed -e 's/\x0/\n/g' /proc/595/environ
CONSOLE=/dev/console
SHELL=/bin/sh
TERM=linux
INIT_VERSION=sysvinit-2.88
PATH=/sbin:/usr/sbin:/bin:/usr/bin
RUNLEVEL=3
PWD=/
PREVLEVEL=N
SHLVL=1
HOME=/
BOOT_IMAGE=Linux
_=/usr/sbin/crond
特定の値のみ表示
grep で絞り込んで必要な値のみさせます
# sed -e 's/\x0/\n/g' /proc/%プロセスID%/environ |grep %変数名%
実行例
root@vm-linux64:~# sed -e 's/\x0/\n/g' /proc/595/environ |grep PATH
PATH=/sbin:/usr/sbin:/bin:/usr/bin