Node.jsのforever関数を実行しようとしていますが、以下の警告が表示されます。
C:\serv>forever start SERVER.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: SERVER.js
--minUptime
および--spinSleepTime
を設定してこれらの警告を削除する方法
npm install forever -g
でforever
パッケージをインストールしました
これらは単なる警告です。必要に応じて、それらを無視して続行できます。ただし、明示的に設定する場合は、forever --help
はその方法を説明します。でforever
を開始するだけです:
forever start --minUptime 1000 --spinSleepTime 1000 SERVER.js
ドキュメンテーションはあまり網羅的ではなく、追加情報が少しあります。
次の例では、2つのスクリプトを使用します。
fail-fast.js:
process.exit(1);
fail-slow.js:
setTimeout(() => { process.exit(1); }, 2000);
forever fail-fast.js
fail-fast.js
スクリプトは1回のみを実行し、他の開始試行は行われません。
forever fail-slow.js
fail-slow.js
スクリプトは無期限に再起動になります。これは、1000ミリ秒(指定されていない場合のminUptime
のデフォルト値)を超えているためです。再起動の回数を制限するには、-m
パラメータ。
minUptime
のみを設定するforever --minUptime 10000 fail-fast.js
forever --minUptime 10000 fail-slow.js
どちらも fail-fast.js
およびfail-slow.js
は決して再起動されないになります。これはminUptime
を10秒に延長し、今ではfail-slow.js
は回転していると見なされます。
spinSleepTime
の設定spinSleepTime
(minUptime
の有無にかかわらず)を設定するたびに、「スピニング」と見なされてもプロセスは再起動します。
forever --spinSleepTime 30000 fail-fast.js
forever --spinSleepTime 30000 fail-slow.js
両方のスクリプトは永久に再起動になり、再起動の間にspinSleepTime
ミリ秒待機します。
要するに:
When stop
if hadRunTime >= minUptime
restart
else if spinSleepTime != 0
wait spinSleepTime
restart
else
stop and no restart
@Megadix答えはspinSleepTime
に何か問題があります。 fail-fast.js
はspinSleepTime
のウォーティングを再開しますが、fail-slow.js
はすぐに再起動し、待機することはありません!以下によって証明できます:
console.log((new Date()).getTime());
setTimeout(() => {
process.exit(1);
}, 2000);
次のような出力:
1468812185697
error: Forever detected script exited with code: 1
error: Script restart attempt #1
1468812187766
error: Forever detected script exited with code: 1
error: Script restart attempt #2
1468812189834
error: Forever detected script exited with code: 1
error: Script restart attempt #3
1468812191901
error: Forever detected script exited with code: 1
error: Script restart attempt #4
1468812193977
error: Forever detected script exited with code: 1
error: Script restart attempt #5
1468812196039
error: Forever detected script exited with code: 1
error: Script restart attempt #6
1468812198107
error: Forever detected script exited with code: 1
error: Script restart attempt #7
1468812200172
error: Forever detected script exited with code: 1
forever start --minUptime 1234 --spinSleepTime 3421 SERVER.js