The world's most clever kitty cat

Handle SIGTERM

bwc9876.dev f20feff8 d009ae2d

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