Node.js永久守护进程,如何正确退出?

3
当使用forever将一个node.js程序作为守护进程运行时,即
forever start myNodeTask

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

如果我只是调用process.exit(),程序会终止,但不会删除永久日志文件,这让我相信我需要以更符合forever要求的方式退出程序。

我运行的node任务是纯tcp服务器,向连接的客户端流数据,而不是web服务器。


1
我不相信当进程停止时它会删除日志。要检查进程是否仍在运行,请使用 forever list - Kevin Reilly
对于Ubuntu,我会执行以下操作 - 1.) forever list 它将显示所有正在运行的Forever进程及其PID。2)forever stop <pid> - Harpreet Singh
1个回答

1
< p > forever 模块始终保留日志文件,即使进程已经完成。没有一种“forever-friendly”的方式来删除这些文件。

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接