我正在尝试寻找一种方法,在Deno中监听Docker SIGTERM信号以关闭我的Oak服务器。我从Oak网站得到了这段代码,当我使用setTimeout或端点调用
controller.abort()
函数时,它可以正常工作。然而,我想在收到Docker SIGTERM信号时调用它,但我无法弄清楚如何监听。const controller = new AbortController();
const app = new Application();
app.addEventListener("listen", ({ hostname, port }) => {
console.log(
bold("Start listening on ") + yellow(`${hostname}:${port}`),
);
});
// Utilise the signal from the controller
const { signal } = controller;
await app.listen({ hostname: "127.0.0.1", port: 8000, signal });
console.log(bold("Finished."));
我尝试使用来自Deno GitHub讨论的这段代码,但也没有起作用。
(() => {
for await (const _ of Deno.signal(Deno.Signal.SIGINT)) {
console.log("interrupt signal")
}
})()
(() => {
for await (const _ of Deno.signal(Deno.Signal.SIGQUIT)) {
console.log("quit signal")
}
})()
(() => {
for await (const _ of Deno.signal(Deno.Signal.SIGTERM)) {
console.log("terminate signal")
}
})()
我既不能看到日志,也没有调用中止操作