mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-16 14:28:14 +00:00
24
Cargo.lock
generated
24
Cargo.lock
generated
@ -881,6 +881,8 @@ dependencies = [
|
|||||||
"serde_urlencoded",
|
"serde_urlencoded",
|
||||||
"serde_yaml",
|
"serde_yaml",
|
||||||
"sha2",
|
"sha2",
|
||||||
|
"signal-hook",
|
||||||
|
"signal-hook-tokio",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
"tokio",
|
||||||
"tokio-executor-trait",
|
"tokio-executor-trait",
|
||||||
@ -4183,6 +4185,16 @@ version = "1.3.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "signal-hook"
|
||||||
|
version = "0.3.17"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"signal-hook-registry",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "signal-hook-registry"
|
name = "signal-hook-registry"
|
||||||
version = "1.4.2"
|
version = "1.4.2"
|
||||||
@ -4192,6 +4204,18 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "signal-hook-tokio"
|
||||||
|
version = "0.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "213241f76fb1e37e27de3b6aa1b068a2c333233b59cca6634f634b80a27ecf1e"
|
||||||
|
dependencies = [
|
||||||
|
"futures-core",
|
||||||
|
"libc",
|
||||||
|
"signal-hook",
|
||||||
|
"tokio",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "signature"
|
name = "signature"
|
||||||
version = "2.2.0"
|
version = "2.2.0"
|
||||||
|
@ -161,6 +161,8 @@
|
|||||||
petgraph = "0.6"
|
petgraph = "0.6"
|
||||||
prometheus-client = "0.22"
|
prometheus-client = "0.22"
|
||||||
pin-project = "1.1"
|
pin-project = "1.1"
|
||||||
|
signal-hook = "0.3"
|
||||||
|
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"] }
|
||||||
|
|
||||||
# Development and testing
|
# Development and testing
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
@ -181,7 +181,12 @@ pub async fn setup() -> Result<()> {
|
|||||||
let monitoring_handle = tokio::spawn(monitoring::setup());
|
let monitoring_handle = tokio::spawn(monitoring::setup());
|
||||||
let grpc_handle = tokio::spawn(grpc.serve(bind));
|
let grpc_handle = tokio::spawn(grpc.serve(bind));
|
||||||
|
|
||||||
let _ = try_join!(grpc_handle, backend_handle, monitoring_handle)?;
|
tokio::spawn(async move {
|
||||||
|
if let Err(e) = try_join!(grpc_handle, backend_handle, monitoring_handle) {
|
||||||
|
error!(error = %e, "Setup API error");
|
||||||
|
std::process::exit(-1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use tracing::info;
|
use futures::stream::StreamExt;
|
||||||
|
use signal_hook::consts::signal::{SIGINT, SIGTERM};
|
||||||
|
use signal_hook_tokio::Signals;
|
||||||
|
use tracing::{info, warn};
|
||||||
|
|
||||||
use crate::gateway;
|
use crate::gateway;
|
||||||
use crate::{adr, api, backend, downlink, integration, region, storage};
|
use crate::{adr, api, backend, downlink, integration, region, storage};
|
||||||
@ -20,5 +23,10 @@ pub async fn run() -> Result<()> {
|
|||||||
downlink::setup().await;
|
downlink::setup().await;
|
||||||
api::setup().await?;
|
api::setup().await?;
|
||||||
|
|
||||||
|
let mut signals = Signals::new([SIGINT, SIGTERM]).unwrap();
|
||||||
|
if let Some(signal) = signals.next().await {
|
||||||
|
warn!(signal = ?signal, "Signal received, terminating process");
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user