watch for SIGTERM
This commit is contained in:
parent
4dfe092e08
commit
e01b3c2806
@ -12,9 +12,10 @@ use std::sync::atomic::AtomicU16;
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use std::{fs, thread};
|
use std::{fs, thread};
|
||||||
use tokio::select;
|
use tokio::signal::unix::SignalKind;
|
||||||
use tokio::sync::{broadcast, mpsc, oneshot};
|
use tokio::sync::{broadcast, mpsc, oneshot};
|
||||||
use tokio::time::{sleep_until, Instant};
|
use tokio::time::{sleep_until, Instant};
|
||||||
|
use tokio::{select, signal};
|
||||||
use tracing::{error, info, trace, warn};
|
use tracing::{error, info, trace, warn};
|
||||||
|
|
||||||
/// start the main proxy daemon
|
/// start the main proxy daemon
|
||||||
@ -140,6 +141,7 @@ impl ProxydSubCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: wait for SIGHUP instead?
|
||||||
thread::sleep(Duration::from_secs(10));
|
thread::sleep(Duration::from_secs(10));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -188,6 +190,8 @@ impl ProxydSubCommand {
|
|||||||
|
|
||||||
let frontend_handle = flatten_handle(frontend_handle);
|
let frontend_handle = flatten_handle(frontend_handle);
|
||||||
|
|
||||||
|
let mut terminate_stream = signal::unix::signal(SignalKind::terminate())?;
|
||||||
|
|
||||||
// if everything is working, these should all run forever
|
// if everything is working, these should all run forever
|
||||||
let mut exited_with_err = false;
|
let mut exited_with_err = false;
|
||||||
let mut frontend_exited = false;
|
let mut frontend_exited = false;
|
||||||
@ -231,6 +235,16 @@ impl ProxydSubCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
x = terminate_stream.recv() => {
|
||||||
|
match x {
|
||||||
|
Some(_) => info!("quiting from SIGTERM"),
|
||||||
|
None => {
|
||||||
|
// TODO: i don't think this is possible
|
||||||
|
error!("error quiting from SIGTERM");
|
||||||
|
exited_with_err = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// TODO: This seems to have been removed on the main branch
|
// TODO: This seems to have been removed on the main branch
|
||||||
// TODO: how can we properly watch background handles here? this returns None immediatly and the app exits. i think the bug is somewhere else though
|
// TODO: how can we properly watch background handles here? this returns None immediatly and the app exits. i think the bug is somewhere else though
|
||||||
x = spawned_app.background_handles.next() => {
|
x = spawned_app.background_handles.next() => {
|
||||||
|
Loading…
Reference in New Issue
Block a user