node.js永远守护进程,如何正常退出?

时间:2014-07-03 15:35:57

标签: node.js forever

永远使用node.js程序作为守护程序运行时 即

forever start myNodeTask

如果守护程序(myNodeTask)决定需要退出,那么这样做的正确方法是什么?

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

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

1 个答案:

答案 0 :(得分:1)

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();