Модуль 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");
}
}Модули
-
unix
Unix - Типы для обработки сигналов, специфичные для Unix.
-
windows
Windows - Типы для обработки сигналов, специфичные для Windows.
Функции
- ctrl_c
- Завершает выполнение после отправки процессу уведомления «ctrl-c».
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/signal/index.html