Обработка сигналов ОС
⚠️ Windows поддерживает прослушивание только сигналов SIGINT и SIGBREAK начиная с Deno v1.23.
Концепции
- Deno.addSignalListener() можно использовать для захвата и мониторинга сигналов ОС.
- Deno.removeSignalListener() можно использовать для прекращения наблюдения за сигналом.
Настройка прослушивателя сигналов ОС
API для обработки сигналов ОС моделируются по уже знакомым addEventListener и removeEventListener API.
⚠️ Обратите внимание, что прослушивание сигналов ОС не препятствует завершению цикла событий, т.е. если больше нет ожидаемых асинхронных операций, процесс завершится.
Для обработки сигналов ОС можно использовать функцию Deno.addSignalListener().
add_signal_listener.ts
console.log("Press Ctrl-C to trigger a SIGINT signal");
Deno.addSignalListener("SIGINT", () => {
console.log("interrupted!");
Deno.exit();
});
// Add a timeout to prevent process exiting immediately.
setTimeout(() => {}, 5000);
Запуск с:
deno run add_signal_listener.ts
Для отмены ранее добавленного обработчика сигналов можно использовать функцию Deno.removeSignalListener().
signal_listeners.ts
console.log("Press Ctrl-C to trigger a SIGINT signal");
const sigIntHandler = () => {
console.log("interrupted!");
Deno.exit();
};
Deno.addSignalListener("SIGINT", sigIntHandler);
// Add a timeout to prevent process exiting immediately.
setTimeout(() => {}, 5000);
// Stop listening for a signal after 1s.
setTimeout(() => {
Deno.removeSignalListener("SIGINT", sigIntHandler);
}, 1000);
Запуск с:
deno run signal_listeners.ts
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/tutorials/os_signals