OSシグナル
このプログラムは、不安定なDeno機能を利用しています。 不安定な機能の詳細をご覧ください。
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秒後に終了します。