0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-31 09:14:20 -04:00
denoland-deno/docs/examples/os_signals.md

38 lines
898 B
Markdown
Raw Normal View History

2020-05-06 18:21:13 -04:00
## Handle OS Signals
> This program makes use of an unstable Deno feature. Learn more about
> [unstable features](../runtime/stability.md).
2020-05-06 18:21:13 -04:00
2020-05-16 10:02:03 -04:00
[API Reference](https://doc.deno.land/https/raw.githubusercontent.com/denoland/deno/master/cli/js/lib.deno.unstable.d.ts#Deno.signal)
2020-05-06 18:21:13 -04:00
You can use `Deno.signal()` function for handling OS signals.
```ts
2020-05-06 18:21:13 -04:00
for await (const _ of Deno.signal(Deno.Signal.SIGINT)) {
console.log("interrupted!");
}
```
`Deno.signal()` also works as a promise.
```ts
await Deno.signal(Deno.Signal.SIGINT);
2020-05-06 18:21:13 -04:00
console.log("interrupted!");
```
If you want to stop watching the signal, you can use `dispose()` method of the
signal object.
```ts
2020-05-06 18:21:13 -04:00
const sig = Deno.signal(Deno.Signal.SIGINT);
setTimeout(() => {
sig.dispose();
}, 5000);
2020-05-06 18:21:13 -04:00
for await (const _ of sig) {
console.log("interrupted");
}
```
The above for-await loop exits after 5 seconds when sig.dispose() is called.