Spec-Zone.ru › Tokio

Модуль signal

Доступен только при включённой функции крейта signal.

Асинхронная обработка сигналов для Tokio.

Обратите внимание, что обработка сигналов в целом — очень сложная тема, требующая особой осторожности. Этот крейт пытается реализовать «наилучшие практики» обработки сигналов, однако следует оценить, подходит ли он для ваших приложений.

Некоторые фундаментальные ограничения этого крейта также описаны в структурах, специфичных для ОС.

Примеры

Вывести сообщение при получении сигнала «ctrl-c».

use tokio::signal;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    signal::ctrl_c().await?;
    println!("ctrl-c received!");
    Ok(())
}

Ожидать SIGHUP в Unix

use tokio::signal::unix::{signal, SignalKind};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // An infinite stream of hangup signals.
    let mut stream = signal(SignalKind::hangup())?;

    // Print whenever a HUP signal is received
    loop {
        stream.recv().await;
        println!("got signal HUP");
    }
}

Модули

unixUnix
Типы для обработки сигналов, специфичные для Unix.
windowsWindows
Типы для обработки сигналов, специфичные для Windows.

Функции

ctrl_c
Завершает выполнение после отправки процессу уведомления «ctrl-c».

MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/signal/index.html

Spec-Zone.ru

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