展开描述
Tokio 的异步信号处理。
请注意,信号处理通常是一个非常难处理的话题, 应该谨慎使用。本 crate 尝试实现“最佳实践”的信号处理, 但你应该根据自己应用程序的需求评估它是否适用。
本 crate 的一些基本局限制也在操作系统版本的 结构体文档中提到。
§示例
在接到 “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(())
}在 Unix 上等待 SIGHUP。
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");
}
}模块§
- windows
- Windows 专用的信号处理类型。
函数§
- ctrl_c
- 当进程接到 “ctrl-c” 通知时完成。