systemdで実行されているすべてのサービスの環境変数を設定する

systemdで実行されているすべてのサービスの環境変数を設定する

現在、CentOS7 マシン全体で環境変数を構成するデプロイメント ツールに取り組んでいます。現状では、ツールは構成する必要がある変数を認識していますが、それらの変数を使用するサービスがまだインストールされていない可能性があるため、どのサービスがそれらを使用するかを認識していません。

課題は次のとおりです。

  1. .serviceツールが実行中の時点では、どのサービスがどの環境変数を必要としているかわかりません(したがって、どのファイルにそれらを配置するかはわかりません)。

  2. 私の知る限り、サービスは非対話型で非ログインで実行されるため、ある種の「グローバル」環境変数を取得する他のオプションは、この問題の解決策にはならないようです(つまり、profile.d など)。

どのサービスがこれらの変数を参照するかを知らなくても、これらの変数を永続化する別の方法はありますか?

答え1

では/etc/systemd/system.conf、 を使用してDefaultEnvironment=すべてのサービスに渡される環境変数を設定できます。

詳細については をご覧くださいman systemd-system.conf

答え2

この解決策はどうでしょうか: systemctl set-environment LD_LIBRARY_PATH=/usr/local/lib?

関連情報