serviceや別のシェルから起動されたプロセスがどんな環境変数で動いているのかを確認したいことが時々あります。
いままではcat
を使って表示していましたが、od
を使うと見やすいことに気づいたので共有しておきます。
動作確認環境
- CentOS 6.6
- CentOS 7.0
cat
による環境変数の表示
実行中のプロセスに関連した情報は/proc/[PID]
の下に格納されており、環境変数は/proc/[PID]/environ
で見ることができます。
$ cat /proc/[PID]/environ
LANG=ja_JP.utf-8USER=sheileLOGNAME=sheileHOME=/home/sheilePATH=/usr/local/bin:/usr/binMAIL=/var/mail/sheileSHELL=/bin/zsh...
この方法でも一応見ることができますが、各設定の区切りが¥0
となっており、catで表示すると全て繋がって表示されてしまいます。この状態だとgrep
などでの絞り込みもしづらく、ちょっと不便に感じていました。
od
による環境変数の表示
od
コマンドにはバイナリに含まれる文字列を表示する-S
オプションがあり、これを使うことで上述したenviron
ファイルを綺麗に表示することができます。
$ od -S1 /proc/[PID]/environ
0000000 LANG=ja_JP.utf-8
0000021 USER=sheile
0000035 LOGNAME=sheile
0000054 HOME=/home/sheile
0000076 PATH=/usr/local/bin:/usr/bin
0000133 MAIL=/var/mail/sheile
0000161 SHELL=/bin/zsh
...
オフセットも邪魔な場合には-A
オプションで消してしまいましょう。
$ od -S1 -An /proc/[PID]/environ
LANG=ja_JP.utf-8
USER=sheile
LOGNAME=sheile
HOME=/home/sheile
PATH=/usr/local/bin:/usr/bin
MAIL=/var/mail/sheile
SHELL=/bin/zsh
...