]> git.proxmox.com Git - proxmox-backup.git/commitdiff
proxmox-rest-server: allow to catch SIGINT and SIGHUP separately
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 30 Sep 2021 06:03:34 +0000 (08:03 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 30 Sep 2021 06:41:30 +0000 (08:41 +0200)
And make ServerState private.

proxmox-rest-server/src/state.rs
src/bin/proxmox-backup-api.rs
src/bin/proxmox-backup-proxy.rs
tests/worker-task-abort.rs

index 715bc1c95f3d4bb85694161c0adf1a44058cd601..e3a41e1358ddaa487b4c257b22ea036e7f853d53 100644 (file)
@@ -9,18 +9,18 @@ use tokio::signal::unix::{signal, SignalKind};
 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! {
@@ -34,12 +34,8 @@ 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())?;
 
@@ -56,6 +52,12 @@ pub fn catch_shutdown_and_reload_signals() -> Result<(), Error> {
 
     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 {
index 38d075ee6334b968037d5d124a61981165905459..35cfc5f06a052403f728d9b96a338d0685828b44 100644 (file)
@@ -127,7 +127,8 @@ async fn run() -> Result<(), Error> {
     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(())
     });
 
index 59694486cb257c04de3aec13d9ae11ce5c7068ba..a98d4c1fd1c98f0f09e4301356b12165b0c4b53b 100644 (file)
@@ -270,7 +270,8 @@ async fn run() -> Result<(), Error> {
     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(())
     });
 
index 75c226d382802aa1bb2d6aa340871d5c20d0f116..6d7ab8daed312dddd031abee33e6ec7fb6ccb5c9 100644 (file)
@@ -53,7 +53,6 @@ fn worker_task_abort() -> Result<(), Error> {
 
         let init_result: Result<(), Error> = try_block!({
             proxmox_rest_server::register_task_control_commands(&mut commando_sock)?;
-            proxmox_rest_server::catch_shutdown_and_reload_signals()?;
             Ok(())
         });