#[cfg(unix)]
pub async fn wait_for_shutdown_signal() -> std::io::Result<()> {
use tokio::signal::unix::{SignalKind, signal};
let mut sigint = signal(SignalKind::interrupt())?;
let mut sigterm = signal(SignalKind::terminate())?;
let mut sigquit = signal(SignalKind::quit())?;
tokio::select! {
_ = tokio::signal::ctrl_c() => {},
_ = sigint.recv() => {},
_ = sigterm.recv() => {},
_ = sigquit.recv() => {},
}
Ok(())
}
#[cfg(not(unix))]
pub async fn wait_for_shutdown_signal() -> std::io::Result<()> {
tokio::signal::ctrl_c().await
}