diff --git a/src/main.rs b/src/main.rs index 2f2b86d..b075c13 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,18 +21,23 @@ async fn main() { config::load_config(std::env::var("MQTTMARIONETTE_CONFIG").ok()) .unwrap(); - let mut sig_term = unix::signal(SignalKind::terminate()).unwrap(); - let mut sig_int = unix::signal(SignalKind::interrupt()).unwrap(); - let task = tokio::spawn(async move { let session = Session::begin(config).await.unwrap(); session.run().await; }); + wait_signal().await; + + task.abort(); +} + +#[cfg(unix)] +async fn wait_signal() { + let mut sig_term = unix::signal(SignalKind::terminate()).unwrap(); + let mut sig_int = unix::signal(SignalKind::interrupt()).unwrap(); + tokio::select! { _ = sig_term.recv() => info!("Received SIGTERM"), _ = sig_int.recv() => info!("Received SIGINT"), }; - - task.abort(); }