OSシグナル

このプログラムは、不安定なDeno機能を利用しています。 不安定な機能の詳細をご覧ください。

API リファレンス

Deno.signal()を使用して、OSシグナルを処理できます。

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

Deno.signal() もpromiseとして機能します。

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

シグナルの監視を停止したい場合は、シグナルオブジェクトのdispose()メソッドを使用できます。

const sig = Deno.signal(Deno.Signal.SIGINT);
setTimeout(() => {
  sig.dispose();
}, 5000);

for await (const _ of sig) {
  console.log("interrupted");
}

上記のfor-awaitループは、sig.dispose()が呼び出されると5秒後に終了します。