LoginSignup
1
3

More than 5 years have passed since last update.

systemdで環境変数を設定した際、起動後に(念の為)確認したい場合

Posted at

TL;DR

# リンク先例
tr '\0' '\n' < /proc/<pid-of-daemon>/environ

# pgrep利用(1プロセスのみ特定可能な場合)
tr '\0' '\n' < /proc/$(pgrep -f <process-name>)/environ

# systemctl show利用(複数プロセス起動するものでMainPIDが取得したい場合)
tr '\0' '\n' < /proc/$(systemctl show <unit-name> -p ExecMainPID | cut -d= -f2)/environ 

参考例発見

tr '\0' '\n' < /proc/<pid-of-daemon>/environ

Bug 1193453 – "systemctl show" doesn't show environment variables defined when EnvironmentFile is used

なかなか検索がヒットしなかった中、上記を発見。
つまり、起動後じゃないと見れないから確認するコマンド(systemctl xxx)はないみたい。
ちなみにsystemctl show-environmentはちょっと違う。

ちなみに'\0'はNull

pgrepで少し楽に

毎回systemctl statusとかしてpid確認するのも面倒なので下記でも良さそう。

tr '\0' '\n' < /proc/$(pgrep -f <process-name>)/environ

pgrepでpid複数になっちゃうような場合

複数プロセスあるよ、とかだったら下記かなと思うけど、長い。。。

tr '\0' '\n' < /proc/$(systemctl show <unit-name> -p ExecMainPID | cut -d= -f2)/environ 
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3