ブート時に実行されるサービスがあり、そのサービスではバックグラウンドでbashスクリプトを呼び出して、いくつかの環境変数をエクスポートします。私が抱えている問題は、これらの環境変数がバックグラウンドプロセスの親に送信されていないため、スクリプトの実行が完了するとすぐに消えてしまうことです。
また、スクリプトが実行された後、サービスは別のスクリプトを呼び出して、所有しているアプリケーションを起動します。このアプリケーションは、これらの環境変数にアクセスする必要があります。
私がそれを実行するRHELシステムは、ユーザーが決してログインすることはなく、アプリケーションを起動して起動するだけです。ただし、親プロセス/シェルの環境変数は、実際には子バックグラウンドプロセスシェルでは設定できないことを知っています。
私のサービスにそれらを追加することではなく(私にとっても機能しませんでした)、/etc/environment
または.profile
またはそのような何か。
私のサービスでは、環境変数を追加しようとしました(しかし、私がやりたいことではありません):
export TEST=192.168.1.1
私は私のサービスでもこれを試しました:
TEST=192.168.1.1
export TEST=${TEST}
サービスがbashスクリプトを呼び出す方法を変更してみました。
/bin/asdf/script &
また、同じシェルで実行するようにスクリプトをソースしようとしました(これはから取得しました)。
. ./bin/asdf/script
#I'm very confused why this didn't work
また、これは面白そうに見えましたが、私の場合はうまくいきませんでした。