#signal #sigint #sigterm #sigabrt #sigquit

simple-signal

Rust 项目中处理 Unix 信号的简单库

6 个稳定版本

使用旧的 Rust 2015

1.1.1 2018年3月21日
1.1.0 2016年11月11日
1.0.6 2016年6月11日
1.0.5 2016年3月1日
1.0.4 2015年12月4日

#343 in 操作系统

Download history 4588/week @ 2024-02-26 5519/week @ 2024-03-04 5265/week @ 2024-03-11 7862/week @ 2024-03-18 6057/week @ 2024-03-25 4864/week @ 2024-04-01 5404/week @ 2024-04-08 5526/week @ 2024-04-15 4415/week @ 2024-04-22 6171/week @ 2024-04-29 5093/week @ 2024-05-06 7737/week @ 2024-05-13 5445/week @ 2024-05-20 5516/week @ 2024-05-27 5827/week @ 2024-06-03 5561/week @ 2024-06-10

23,045 每月下载量
用于 11 crates

MIT 许可证

9KB
159

simple-signal

Unix 进程信号处理的简单包装器。

示例用法

extern crate simple_signal;

use simple_signal::{self, Signal};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;

fn main() {
    let running = Arc::new(AtomicBool::new(true));
    let r = running.clone();
    simple_signal::set_handler(&[Signal::Int, Signal::Term], move |_signals| {
        r.store(false, Ordering::SeqCst);
    });
    println!("Waiting for a signal...");
    while running.load(Ordering::SeqCst) {}
    println!("Got it! Exiting...");
}

尝试运行示例

cargorun --examplereadme_example

构建

如果您使用的是夜间编译器,建议使用 cargo build --features nightly 构建,以避免对 lazy_static 的依赖。在稳定和beta编译器上,只需运行 cargo build


lib.rs:

Unix 进程信号处理的简单包装器。

依赖

~46KB