// use tokio::{ // select, // signal::unix::{signal, SignalKind}, // sync::watch, // }; // pub(crate) fn signal_handler() -> watch::Receiver<()> { // let (stop_tx, stop_rx) = watch::channel(()); // tokio::spawn(async move { // let mut sigterm = signal(SignalKind::terminate()).unwrap(); // let mut sigint = signal(SignalKind::interrupt()).unwrap(); // loop { // select! { // _ = sigterm.recv() => println!("Receive SIGTERM"), // _ = sigint.recv() => println!("Receive SIGTERM"), // }; // stop_tx.send(()).unwrap(); // } // }); // stop_rx // }