diff options
| author | rtkay123 <dev@kanjala.com> | 2026-02-01 13:33:07 +0200 |
|---|---|---|
| committer | rtkay123 <dev@kanjala.com> | 2026-02-01 13:33:07 +0200 |
| commit | ce65d9eeafcd1f9d5c3adef1c9b1af6258ee711a (patch) | |
| tree | 953f6c49f8affd667ec740a949b2d93f82b7d31b /src/server/shutdown | |
| parent | 6a9d21bc87f8a738e14f27a1305bf04d0c4b7a0c (diff) | |
| download | sellershut-ce65d9eeafcd1f9d5c3adef1c9b1af6258ee711a.tar.bz2 sellershut-ce65d9eeafcd1f9d5c3adef1c9b1af6258ee711a.zip | |
feat: conn to db
Diffstat (limited to 'src/server/shutdown')
| -rw-r--r-- | src/server/shutdown/mod.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/server/shutdown/mod.rs b/src/server/shutdown/mod.rs new file mode 100644 index 0000000..0e89a0c --- /dev/null +++ b/src/server/shutdown/mod.rs @@ -0,0 +1,29 @@ +use tokio::signal; + +pub async fn shutdown_signal() { + let ctrl_c = async { + signal::ctrl_c() + .await + .expect("failed to install Ctrl+C handler"); + }; + + #[cfg(unix)] + let terminate = async { + signal::unix::signal(signal::unix::SignalKind::terminate()) + .expect("failed to install signal handler") + .recv() + .await; + }; + + #[cfg(not(unix))] + let terminate = std::future::pending::<()>(); + + tokio::select! { + _ = ctrl_c => { + tracing::info!("Received Ctrl+C, starting graceful shutdown"); + }, + _ = terminate => { + tracing::info!("Received SIGTERM, starting graceful shutdown"); + }, + } +} |
