From 878df8da40aae7ab62c83ad28893832b6dd4b04b Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Sun, 20 Apr 2025 00:58:18 +0200 Subject: [PATCH] Start graceful shutdown on SIGTERM --- src/main.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main.rs b/src/main.rs index a438d1e..7f72672 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,11 +20,28 @@ use tracing_subscriber::EnvFilter; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; +#[cfg(unix)] +async fn sigterm() { + use tokio::signal::unix::SignalKind; + + let mut sigterm = + tokio::signal::unix::signal(SignalKind::terminate()).expect("should be able to initialize"); + sigterm.recv().await; +} + +#[cfg(not(unix))] +async fn sigterm() { + std::future::pending::<()>().await; +} + async fn shutdown_task(token: CancellationToken) { select! { _ = tokio::signal::ctrl_c() => { debug!("Received SIGINT"); } + _ = sigterm() => { + debug!("Received SIGTERM"); + } _ = token.cancelled() => { debug!("Application called for graceful shutdown"); }