处理操作系统信号
你可以使用 `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