处理操作系统信号
在 Github 上编辑
您可以使用 `Deno.addSignalListener` 函数监听操作系统信号。这允许您执行诸如在收到 `SIGINT` 信号时优雅地关闭服务器之类的操作。
console.log("Counting seconds...");
let i = 0;
我们隔离了信号处理函数,以便稍后可以将其删除。
function sigIntHandler() {
console.log("interrupted! your number was", i);
Deno.exit();
}
然后,我们可以监听 `SIGINT` 信号,该信号在用户按下 Ctrl+C 时发送。
Deno.addSignalListener("SIGINT", sigIntHandler);
在等待信号时,我们可以执行其他操作,例如计数秒数或启动服务器。
const interval = setInterval(() => {
i++;
}, 1000);
并且,在 10 秒后,我们可以退出并删除信号监听器。
setTimeout(() => {
clearInterval(interval);
Deno.removeSignalListener("SIGINT", sigIntHandler);
console.log("done! it has been 10 seconds");
}, 10_000);
使用 Deno CLI 在本地运行此示例
deno run https://docs.deno.org.cn/examples/scripts/os_signals.ts