by Detegr

Detegr / rust-ctrlc

Easy Ctrl-C handler for Rust projects

231 Stars 48 Forks Last release: Not found Other 140 Commits 16 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Build Status Build status

A simple easy to use wrapper around Ctrl-C signal.


Example usage

extern crate ctrlc;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;

fn main() { let running = Arc::new(AtomicBool::new(true)); let r = running.clone(); ctrlc::set_handler(move || {, Ordering::SeqCst); }).expect("Error setting Ctrl-C handler"); println!("Waiting for Ctrl-C..."); while running.load(Ordering::SeqCst) {} println!("Got it! Exiting..."); }

Try the example yourself

cargo build --examples && target/debug/examples/readme_example

Handling SIGTERM

Add CtrlC to Cargo.toml using

feature and CtrlC will handle both SIGINT and SIGTERM.
ctrlc = { version = "3.0", features = ["termination"] }


Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or * MIT license (LICENSE-MIT or at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.