当使用 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/