deno.com

处理操作系统信号

在 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

您找到所需的内容了吗?

隐私政策