foreverjs 将进程置于 STOPPED 状态而不是重新启动
foreverjs turns process in STOPPED state instead of restarting
我有 nodejs
进程侦听连接。我想让 foreverjs
以这种方式在出现任何连接错误时重新启动它:
amqpConnection.on('error', function (err) {
console.error(err);
process.exit(1);
});
但这行不通。出错后我看到我的进程处于这种状态:
~> forever list
info: Forever processes running
data: uid command script logfile
data: [0] OpQF /usr/bin/node my-script.js my-script-log.log STOPPED
日志文件有连接错误和两次尝试重新启动脚本。
error: Script restart attempt #2
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
error: Forever detected script exited with code: 1
为什么永远停止尝试重新启动我的进程?
我已经重现了您的问题,发现如果在 process.exit 之前发生了一些延迟(1 秒),则永远成功地重新启动您的进程。
看起来当它崩溃得太快时永远不要重新启动进程。
setTimeout(function() {
process.exit(1);
}, 1000);
我应该阅读 forever
打印的警告!
未停留 运行 超过 --minUptime
(默认为 1000 毫秒)的脚本被视为 "spinning"。应该设置 --spinSleepTime
以使旋转脚本重新启动。当省略此参数时,旋转脚本将不会重新启动。
我有 nodejs
进程侦听连接。我想让 foreverjs
以这种方式在出现任何连接错误时重新启动它:
amqpConnection.on('error', function (err) {
console.error(err);
process.exit(1);
});
但这行不通。出错后我看到我的进程处于这种状态:
~> forever list
info: Forever processes running
data: uid command script logfile
data: [0] OpQF /usr/bin/node my-script.js my-script-log.log STOPPED
日志文件有连接错误和两次尝试重新启动脚本。
error: Script restart attempt #2
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
error: Forever detected script exited with code: 1
为什么永远停止尝试重新启动我的进程?
我已经重现了您的问题,发现如果在 process.exit 之前发生了一些延迟(1 秒),则永远成功地重新启动您的进程。 看起来当它崩溃得太快时永远不要重新启动进程。
setTimeout(function() {
process.exit(1);
}, 1000);
我应该阅读 forever
打印的警告!
未停留 运行 超过 --minUptime
(默认为 1000 毫秒)的脚本被视为 "spinning"。应该设置 --spinSleepTime
以使旋转脚本重新启动。当省略此参数时,旋转脚本将不会重新启动。