私はLinuxとAWSを初めて使用します。 EC2インスタンスで実行されているNode.jsサーバーがあります。ポート80で無限に実行されるように、次のコマンドを実行しています。
$ sudo node app.js &
これで、ノードアプリを使用して実行すると、sudo
環境変数が見つかりません。
データベースに接続するには、環境変数USER、PASSWORD、およびIPを設定できる必要があります。数多くの命令を試しましたが、環境変数1つの設定だけに成功しましたが、新しい変数を設定するので削除されました。
解決策
Jeff Schallerが以下に示す例のおかげで、私が探していたものを見つけました。私はそれを試してみましたが、なぜそれがうまくいかなかったのかわからず、最終的にいくつかのシェルスクリプトを学びました。
まず私は走った$ vim runapp.sh
。次に、次のコードを追加しました。
#!/bin/sh
Clear
export USER="Username"
export PASSWORD="Password"
export IP="1.1.1.1"
Node ./bin/www
ファイルを保存して実行してみました。$ chmod +x runapp.sh
ついに私はそれを実行し、$ sudo ./runapp.sh &
完全に実行された。
これを行わないでください、バグがある、またはより良い、より安全な方法がある場合は、お知らせください。最終的に問題を解決できます。
答え1
次のファイルを作成します。
#!/bin/sh
USER=u PASSWORD=p IP=10.10.10.10 node app.js
...または...
#!/bin/sh
USER=u; export USER
PASSWORD=p; export PASSWORD
IP=10.10.10.10; export IP
node app.js
...ここで、「u」、「p」、および「10.10.10.10」の代わりに必要な値を入力できます。たとえば、ファイルを次のように保存し、runapp
次chmod u+x runapp
のように実行可能にします。
sudo ./runapp &