Rustbot/src/shutdown.rs

24 lines
449 B
Rust
Raw Normal View History

2024-11-27 21:50:28 +11:00
use tokio::{
select,
signal::unix::{
signal,
SignalKind
}
};
pub async fn gracefully_shutdown() {
let [mut s1, mut s2, mut s3] = [
signal(SignalKind::interrupt()).unwrap(),
signal(SignalKind::terminate()).unwrap(),
signal(SignalKind::hangup()).unwrap()
];
select!(
v = s1.recv() => v.unwrap(),
v = s2.recv() => v.unwrap(),
v = s3.recv() => v.unwrap()
);
println!("\nRustbot says goodbye! 👋");
}