34个稳定版本 (3个主要版本)

3.4.5 2024年8月13日
3.4.4 2024年3月10日
3.4.2 2023年12月22日
3.4.1 2023年9月3日
0.1.1 2015年7月16日

#6 in Operating systems

Download history · Rust 包仓库 315800/week @ 2024-05-04 · Rust 包仓库 343900/week @ 2024-05-11 · Rust 包仓库 359833/week @ 2024-05-18 · Rust 包仓库 336137/week @ 2024-05-25 · Rust 包仓库 382467/week @ 2024-06-01 · Rust 包仓库 365505/week @ 2024-06-08 · Rust 包仓库 342674/week @ 2024-06-15 · Rust 包仓库 339630/week @ 2024-06-22 · Rust 包仓库 323026/week @ 2024-06-29 · Rust 包仓库 340759/week @ 2024-07-06 · Rust 包仓库 312132/week @ 2024-07-13 · Rust 包仓库 328741/week @ 2024-07-20 · Rust 包仓库 320189/week @ 2024-07-27 · Rust 包仓库 302428/week @ 2024-08-03 · Rust 包仓库 347541/week @ 2024-08-10 · Rust 包仓库 318186/week @ 2024-08-17 · Rust 包仓库

1,347,990 个月下载量
用于 1,038 个crate(830个直接使用)

MIT/Apache

21KB
294 代码行数(不包括注释)

CtrlC

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

文档

示例用法

cargo.toml

[dependencies]
ctrlc = "3.4"

然后,在 main.rs

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。

许可证

根据以下任一许可证授权

贡献

除非您明确表示,否则您提交的任何有意包含在作品中的贡献都将根据上述双重许可证授权,无需任何额外条款或条件。

类似的crate

有其他替代方案,可以提供对不同的信号更多的控制,或添加异步支持。

依赖项

~2–11MB
~98K SLoC