You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
706 B
Rust
22 lines
706 B
Rust
use signal_hook::iterator::Signals;
|
|
use std::io::Error;
|
|
fn main() -> Result<(), Error> {
|
|
let signals = Signals::new(&[signal_hook::SIGTERM, signal_hook::SIGINT])?;
|
|
'signal_loop: loop {
|
|
// Pick up signals that arrived since last time
|
|
for signal in signals.pending() {
|
|
match signal {
|
|
signal_hook::SIGINT => {
|
|
println!("Received signal SIGINT");
|
|
}
|
|
signal_hook::SIGTERM => {
|
|
println!("Received signal SIGTERM");
|
|
break 'signal_loop;
|
|
}
|
|
_ => unreachable!(),
|
|
}
|
|
}
|
|
}
|
|
println!("Terminating program");
|
|
Ok(())
|
|
} |