处理系统信号

这个程序使用了不稳定的 Deno 特性。更多信息请查阅 稳定性

API 参考手册

您可以使用 Deno.signal() 函数来处理系统信号:

  1. for await (const _ of Deno.signal(Deno.Signal.SIGINT)) {
  2. console.log("interrupted!");
  3. }

Deno.signal() 也是一个 promise:

  1. await Deno.signal(Deno.Signal.SIGINT);
  2. console.log("interrupted!");

如果您想要停止监控信号,可以使用信号对象的 dispose() 方法:

  1. const sig = Deno.signal(Deno.Signal.SIGINT);
  2. setTimeout(() => {
  3. sig.dispose();
  4. }, 5000);
  5. for await (const _ of sig) {
  6. console.log("interrupted");
  7. }

以上 for-await 循环将在 sig.dispose() 被调用时退出,运行时间为 5 秒。