この質問は@FrusteratedWithFormsDesignerから来ました。コメント。
export
init.dスクリプトで設定された環境変数を同じinit.dスクリプトで開始されたダウンストリームプロセスで使用できるようにするにはどうすればよいですか?
詳しくは、Amazon EC2インスタンスを使用しており、init.dスクリプトを使用してnode
.jsサーバーを制御します。このサーバーはnodemon
ファイルの変更を観察し、node
必要に応じて再起動することで制御されます。つまり、私のinit.dスクリプトが起動してnodemon
から起動しますnode
。 init.dスクリプトに設定されている環境変数は、では使用できますが、使用できないようexport
です。これらの環境変数も使用できるようにするにはどうすればよいですか?nodemon
node
node
現在私のAmazon EC2インスタンスではinit.dのみを使用できますが、init.dスクリプトを使用するとこれは可能ですか?それ以外の場合は、upstartまたは可能な限りsystemdを使用してこれを達成できますか?
ベストアンサー1
FedoraやUbuntu 16.04などのシステムベースのLinuxディストリビューションに切り替えることをお勧めします。systemd
環境変数はプロセスに簡単に渡すことができ、失敗したプロセスを自動的に再起動し、起動時に開始するタスクを処理できます。 systemdのログもロギングを非常によく処理します。 systemdはオペレーティングシステムのディストリビューションの一部であるため、他のものをインストールまたは実行するためのオーバーヘッドはありません。
以下は、systemdを使用してユニットファイルに2つの環境変数を設定する例です。
Environment="ONE=one" 'TWO=two two'
完全な文書は次のとおりです。ここ。
初期化システムとプロセスマネージャの両方が環境変数の渡しを処理するため、問題は部分的に複雑です。 systemd を初期化システムおよびプロセスマネージャとして使用すると、複雑さがなくなります。