Spec-Zone.ru › Deno 2

Обработка сигналов ОС

⚠️ 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API