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