web-dev-qa-db-ja.com

Node.jsは環境変数で永遠に

ノードアプリを起動するためにサーバーで実行するコマンドは次のとおりです。

Sudo IS_PROD=1 node app.js

私は永久にインストールしましたが、環境変数を渡すことができないようです。

Sudo IS_PROD=1 forever node app.js

トリックをしないようです。私はこれのいくつかの種類を試しました。このコマンドを正常に実行するか、環境変数を永続的に設定するにはどうすればよいですか?

38
user1168427

まず、コマンド内のnodeをスキップする必要があります。そこにあるべきではありません。実行できないはずです。 forever は、 nodejs を使用してスクリプトを自動的に開始します。代わりに、このようにする必要があります。

Sudo IS_PROD=1 forever app.js

おそらく、サーバーをフォアグラウンドで起動する代わりに、サーバーをデーモンとして起動したいと思うでしょう。例えば。

Sudo IS_PROD=1 forever start app.js

これにより、ノードアプリを監視し、終了時に再起動するプロセスがバックグラウンドで作成されます。詳細については、 readme を参照してください。

これらのメソッドは両方とも、nodeを使用しているときと同じように、環境変数を保持します。

88
Mattias

app.js:

console.log(process.env.IS_PROD);

nodeの使用(v0.8.21)

$ node app.js
undefined

$ IS_PROD=1 node app.js
1

$ Sudo IS_PROD=1 node app.js
1

foreverの使用(v0.10.0)

$ forever app.js
undefined

$ IS_PROD=1 forever app.js
1

$ Sudo IS_PROD=1 forever app.js
1

ドキュメント

process.env

ユーザー環境を含むオブジェクト。 environ(7)を参照してください。

15
mak