| 5978 | |
| 5979 | #[cfg(unix)] |
| 5980 | async fn shutdown_signal() { |
| 5981 | use tokio::signal::unix::{signal, SignalKind}; |
| 5982 | |
| 5983 | let mut terminate = match signal(SignalKind::terminate()) { |
| 5984 | Ok(signal) => signal, |
| 5985 | Err(error) => { |
| 5986 | warn!("Unable to install SIGTERM handler: {error}"); |
| 5987 | std::future::pending::<()>().await; |
| 5988 | return; |
| 5989 | } |
| 5990 | }; |
| 5991 | let mut hangup = match signal(SignalKind::hangup()) { |
| 5992 | Ok(signal) => signal, |
| 5993 | Err(error) => { |
| 5994 | warn!("Unable to install SIGHUP handler: {error}"); |
| 5995 | std::future::pending::<()>().await; |
| 5996 | return; |
| 5997 | } |
| 5998 | }; |
| 5999 | |
| 6000 | tokio::select! { |
| 6001 | _ = terminate.recv() => {} |
| 6002 | _ = hangup.recv() => {} |
| 6003 | } |
| 6004 | } |
| 6005 | |
| 6006 | #[cfg(not(unix))] |
| 6007 | async fn shutdown_signal() { |