web-dev-qa-db-ja.com

Node.js-永久に使用してノードサーバーを実行できない

Foreverコマンドを使用してノードサーバーを実行しようとしています。私は永久にグローバルにインストールしました:

npm install forever -g

永久にインストールした後、以下のコマンドを使用してノードスクリプトを実行しようとします。

node_modules\.bin\forever start app.js

以下は私のコンソールです:

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up f
or at least 1000ms
info:    Forever processing file: app.js

この問題を解決するために私を助けてください!

26
S Singh

ここで、configsに対する警告以外に問題はありません。そこに最後のメッセージが表示される場合は、スクリプトが処理されたことを示しています。ただ走れ forever listとスクリプトが実行されているはずです。

Yumリポジトリ(yum install npm)そしてその後、永久にインストールしますが、ノードとnpmをシェルスクリプトを介してインストールし、その後永久にインストールすると、それは起こりません。これは、パッケージインストーラーの式またはインストーラーのフラグ付きのエイリアスが欠落している可能性があるため、これらの値を舞台裏で設定する必要があります。

それらが機能していないという意味ではありません。以下を参照して、ノードのサイトからサンプルコードを使用してjsファイルを作成し、手動で実行しました(アプリのポートを一時的に開くようにファイアウォールをフラッシュしましたが、それは必要ありません)。

[root@app1 ~]# vi example.js
[root@app1 ~]# apf -f
apf(23924): {glob} flushing & zeroing chain policies
apf(23924): {glob} firewall offline
[root@app1 ~]# node example.js 
Server running at http://127.0.0.1:1337/

次に、永久に使用してアプリを起動します。

^C[root@app1 ~]# forever start example.js 
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: example.js

次に、アプリが実行されているかどうかを確認します。

[root@app1 ~]# forever list
info:    Forever processes running
data:        uid  command       script     forever pid   logfile                 uptime       
data:    [0] dan1 /usr/bin/node example.js 23976   23978 /root/.forever/dan1.log 0:0:0:27.320 
[root@app1 ~]#
6
Mike S.

これは私の問題を解決しました:

forever start -c node [path/to/app]

「-c」は-コマンドを実行することを意味します。そして、nodejsを介して実行します

このように、デフォルトでは最小でRespawnを取得します。 1000msの稼働時間

取得元: https://github.com/nodejitsu/forever/issues/422 、「Basarat」

2
Yonatan Ayalon

まず、実行中のすべてのアプリを停止します。

forever stopall

次に、このコマンドを使用します。それは私のために働き、私の問題を解決しました:

forever -w ./bin/www

そして、あなたはpackage.jsonファイルでこれを見つけるべきです:

"scripts": {
    "start": "node ./bin/www"
  }

お役に立てば幸いです。

1
saghar.fadaei

同じ種類の出力を生成するが、アプリケーションを起動しない1つのことは、foreverが指定されたログファイルに書き込むことができない場合です。ログファイルが大きくなりすぎて、プロセスを開始できない場合がありました。

0
Rami

まず、package.jsonスクリプトを次のように変更します

"scripts": {
      "start": "forever ./bin/www.js"
 }

linuxコンソールでこのコマンドを開始する:Sudo npm start

windowsのみ:npm start

0
Vahap Gençdal

ノードjsをExpressフレームワークで使用している場合、スクリプトは使用を開始しません。

forever start app.js

まず、実行中のすべてのアプリを停止します。

forever stopall

このExpressフレームワークを使用する場合は、次のもので開始する必要があります。

forever start ./bin/www
0
Sid Mhatre