// 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
// }
