The world's most clever kitty cat

Handle SIGTERM

bwc9876.dev f20feff8 d009ae2d

verified
+7 -1
+7 -1
src/main.rs
··· 26 use log::{debug, error, info, warn}; 27 use prelude::*; 28 use tokio::{ 29 sync::RwLock, 30 time::{self, Duration}, 31 }; ··· 212 213 let mut interval = time::interval(Duration::from_secs(60)); 214 interval.tick().await; 215 - tokio::pin!(interval); 216 217 info!("Connecting to gateway..."); 218 ··· 223 224 Ok(()) = tokio::signal::ctrl_c() => { 225 info!("SIGINT: Closing connection and saving"); 226 shard.close(CloseFrame::NORMAL); 227 } 228 _ = interval.tick() => {
··· 26 use log::{debug, error, info, warn}; 27 use prelude::*; 28 use tokio::{ 29 + signal::unix::{SignalKind, signal}, 30 sync::RwLock, 31 time::{self, Duration}, 32 }; ··· 213 214 let mut interval = time::interval(Duration::from_secs(60)); 215 interval.tick().await; 216 + 217 + let mut sigterm = signal(SignalKind::terminate()).context("Failed to listen to SIGTERM")?; 218 219 info!("Connecting to gateway..."); 220 ··· 225 226 Ok(()) = tokio::signal::ctrl_c() => { 227 info!("SIGINT: Closing connection and saving"); 228 + shard.close(CloseFrame::NORMAL); 229 + } 230 + _ = sigterm.recv() => { 231 + info!("SIGTERM: Closing connection and saving"); 232 shard.close(CloseFrame::NORMAL); 233 } 234 _ = interval.tick() => {