node.js forever 守护进程,如何正确退出?

标签 node.js forever

当使用 forever 将 node.js 程序作为守护进程运行时 即

forever start myNodeTask

如果守护进程 (myNodeTask) 决定它需要退出,正确的做法是什么?

如果我只是调用 process.exit() 程序确实会终止但它不会删除永久日志文件,这让我相信我需要程序以更永久的方式退出-友好的态度。

我正在运行的 Node 任务是普通的 tcp 服务器,它们将数据流式传输到连接的客户端,而不是 Web 服务器。

最佳答案

forever 模块始终保留日志文件,即使在进程结束后也是如此。没有永远友好的方式来删除这些文件。

但是,您可以使用 forever-monitor模块,它允许您以编程方式使用 forever(来自 docs ):

var forever = require('forever-monitor'),
    fs      = require('fs');

var child = new (forever.Monitor)('your-filename.js', {
  max: 3,
  silent: true,
  options: []
});

child.on('exit', function () {
  console.log('your-filename.js has exited after 3 restarts');
  // here you can delete your log file
  fs.unlink('path_to_your_log_file', function (err) {
    // do something amazing
  });
});

child.start();

关于node.js forever 守护进程,如何正确退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557945/

相关文章:

node.js - npm 安装错误(代码 EBADPLATFORM)

javascript - 永远不会在服务器重启时启动

javascript - fatal error : CALL_AND_RETRY_LAST Allocation failed — process out of memory

javascript - 如何让一段代码每15分钟连续执行一次?

node.jsforever-monitor在linux上不使用子目录

node.js - 在 NodeJS 上同时接收相同的名称输入和多部分/表单数据输入作为数组和 FileAttachment

node.js - 更改 Jade 中的字体和颜色

node.js - 管理员 Firebase 错误 : "admin.auth(...).generatePasswordResetLink is not a function"

node.js - 无法让node.js服务器与forever/pm2/nohup一起运行

node.js - 使用 --config 设置 Mocha 的路径