サービスの起動時にenv変数が表示されないのはなぜですか?

サービスの起動時にenv変数が表示されないのはなぜですか?

サービスの起動時に環境変数が表示されない理由を知りたいです。より正確に言えば、LSB仕様に従っていくつかのJavaプロセスを開始するサービス起動スクリプトを作成しました。これを行うには、まずJAVA_HOME環境変数を確認してください。この環境変数は /etc/profile.d/java.sh に設定されます。サービスの開始時には実行されないことがあります。プロセスを理解したいです。この場合、正しい解決策は何ですか?

ベストアンサー1

RCスクリプトは非対話型シェルスクリプトと呼ばれます。したがって、彼らは/ etc / profileを読みません。したがって、スクリプトで変数を明示的に定義する必要があります。スクリプトで直接使用するか、多くのRCスクリプト(/etc/sysconfig/$packageで定義されている主要変数)で使用されるいくつかの(マスキング)技術を使用してください。

tomcat6がこれを行う方法を見てください(私の考えはかなり複雑ですが)。

おすすめ記事