gpt4 book ai didi

node.js - 如何打印 Node.JS 进程退出事件的输出

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:36 26 4
gpt4 key购买 nike

考虑以下程序。

var util = require("util");

process.on("exit", function(){
util.puts("Hello World");
});

// Keep the program alive
setInterval(function(){}, 500);

上面的程序等待直到收到终止信号。当进程退出时,我希望“Hello World”被打印到标准输出。但是,在收到信号(我尝试过 SIGTERM、SIGINT、SIGHUP 和 SIGKILL)后,应用程序无法打印消息。如果我删除 setInterval 行以使进程自行退出,则会打印该消息。

当进程因信号而退出时,如何让 Node.JS 将消息打印到控制台(或文件)?

最佳答案

如果您附加 SIGINT(中断信号)的监听器,您可以在 process.exit 监听器或 SIGINT 监听器中执行操作。

但是,您只能在 process.exit block 中执行同步操作,因为它在退出程序之前只会运行一次。

var util = require("util");

process.on("exit", function(){
util.puts("Hello World");

setTimeout(function(){
//Won't run code in here
util.puts("Something Async");
},1);
});

process.on("SIGINT", function(){
util.puts("You Pressed CTRL+C");
somethingAsync(function(err){
process.exit();
});
});

// Keep the program alive
setInterval(function(){}, 500);

//OUTPUTS:
//You Pressed CTRL+C
//Hello World

关于node.js - 如何打印 Node.JS 进程退出事件的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com