use pbs_tools::broadcast_future::BroadcastData;
#[derive(PartialEq, Copy, Clone, Debug)]
-pub enum ServerMode {
+enum ServerMode {
Normal,
Shutdown,
}
-pub struct ServerState {
- pub mode: ServerMode,
- pub shutdown_listeners: BroadcastData<()>,
- pub last_worker_listeners: BroadcastData<()>,
- pub worker_count: usize,
- pub internal_task_count: usize,
- pub reload_request: bool,
+struct ServerState {
+ mode: ServerMode,
+ shutdown_listeners: BroadcastData<()>,
+ last_worker_listeners: BroadcastData<()>,
+ worker_count: usize,
+ internal_task_count: usize,
+ reload_request: bool,
}
lazy_static! {
});
}
-/// Listen to ``SIGINT`` and ``SIGHUP`` signals
-///
-/// * ``SIGINT``: start server shutdown
-///
-/// * ``SIGHUP``: start server reload
-pub fn catch_shutdown_and_reload_signals() -> Result<(), Error> {
+/// Listen to ``SIGINT`` for server shutdown
+pub fn catch_shutdown_signal() -> Result<(), Error> {
let mut stream = signal(SignalKind::interrupt())?;
tokio::spawn(task.map(|_| ()));
+ Ok(())
+}
+
+/// Listen to ``SIGHUP`` for server reload
+pub fn catch_reload_signal() -> Result<(), Error> {
+
let mut stream = signal(SignalKind::hangup())?;
let future = async move {
let init_result: Result<(), Error> = try_block!({
proxmox_rest_server::register_task_control_commands(&mut commando_sock)?;
commando_sock.spawn()?;
- proxmox_rest_server::catch_shutdown_and_reload_signals()?;
+ proxmox_rest_server::catch_shutdown_signal()?;
+ proxmox_rest_server::catch_reload_signal()?;
Ok(())
});
let init_result: Result<(), Error> = try_block!({
proxmox_rest_server::register_task_control_commands(&mut commando_sock)?;
commando_sock.spawn()?;
- proxmox_rest_server::catch_shutdown_and_reload_signals()?;
+ proxmox_rest_server::catch_shutdown_signal()?;
+ proxmox_rest_server::catch_reload_signal()?;
Ok(())
});