#ctrl-c #signal #sigint

ctrlc-async

为 Rust 项目提供的简单异步 Ctrl-C 处理程序

2个稳定版本

3.2.2 2021年10月17日

204操作系统

Download history 57/week @ 2024-03-14 135/week @ 2024-03-21 127/week @ 2024-03-28 134/week @ 2024-04-04 171/week @ 2024-04-11 300/week @ 2024-04-18 161/week @ 2024-04-25 300/week @ 2024-05-02 121/week @ 2024-05-09 184/week @ 2024-05-16 172/week @ 2024-05-23 219/week @ 2024-05-30 229/week @ 2024-06-06 275/week @ 2024-06-13 147/week @ 2024-06-20 108/week @ 2024-06-27

855 每月下载量
8 crates 中使用

MIT/Apache

33KB
583

CtrlC

Build Status Build status

Ctrl-C 信号简单易用的包装器。

文档

示例用法

use std::sync::mpsc::channel;
use ctrlc;

fn main() {
    let (tx, rx) = channel();
    
    ctrlc::set_handler(move || tx.send(()).expect("Could not send signal on channel."))
        .expect("Error setting Ctrl-C handler");
    
    println!("Waiting for Ctrl-C...");
    rx.recv().expect("Could not receive from channel.");
    println!("Got it! Exiting..."); 
}

亲自尝试示例

cargobuild --examples && target/debug/examples/readme_example

处理 SIGTERM 和 SIGHUP

使用 termination 功能将 CtrlC 添加到 Cargo.toml,CtrlC 将处理 SIGINT、SIGTERM 和 SIGHUP。

[dependencies]
ctrlc = { version = "3.0", features = ["termination"] }

许可证

许可协议为以下之一

贡献

除非您明确说明,否则您有意提交的任何贡献均将根据上述协议双许可,无需任何附加条款或条件。

依赖项

~4–16MB
~186K SLoC