Need help with rust-ctrlc?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

Detegr
339 Stars 58 Forks Other 166 Commits 11 Opened issues

Description

Easy Ctrl-C handler for Rust projects

Services available

!
?

Need anything else?

Contributors list

CtrlC

Build Status Build status

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

Documentation

Example usage

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..."); 

}

Try the example yourself

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

Handling SIGTERM and SIGHUP

Add CtrlC to Cargo.toml using

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

License

Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.

Contribution

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.