]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/bin/proxmox-backup-api.rs
proxmox-rest-server: allow to catch SIGINT and SIGHUP separately
[proxmox-backup.git] / src / bin / proxmox-backup-api.rs
index e3f2531f8b950b9cadebcd7e92350f48dad6b830..35cfc5f06a052403f728d9b96a338d0685828b44 100644 (file)
@@ -9,7 +9,6 @@ use proxmox::try_block;
 use proxmox::api::RpcEnvironmentType;
 use proxmox::tools::fs::CreateOptions;
 
-use pbs_tools::auth::private_auth_key;
 use proxmox_rest_server::{daemon, ApiConfig, RestServer};
 
 use proxmox_backup::server::auth::default_api_auth;
@@ -107,32 +106,29 @@ async fn run() -> Result<(), Error> {
     // http server future:
     let server = daemon::create_daemon(
         ([127,0,0,1], 82).into(),
-        move |listener, ready| {
+        move |listener| {
             let incoming = hyper::server::conn::AddrIncoming::from_listener(listener)?;
 
-            Ok(ready
-                .and_then(|_| hyper::Server::builder(incoming)
+            Ok(async {
+                daemon::systemd_notify(daemon::SystemdNotify::Ready)?;
+
+                hyper::Server::builder(incoming)
                     .serve(rest_server)
                     .with_graceful_shutdown(proxmox_rest_server::shutdown_future())
                     .map_err(Error::from)
-                )
-                .map(|e| {
-                    if let Err(e) = e {
-                        eprintln!("server error: {}", e);
-                    }
-                })
-            )
+                    .await
+            })
         },
         "proxmox-backup.service",
     );
 
     proxmox_rest_server::write_pid(pbs_buildcfg::PROXMOX_BACKUP_API_PID_FN)?;
-    daemon::systemd_notify(daemon::SystemdNotify::Ready)?;
 
     let init_result: Result<(), Error> = try_block!({
         proxmox_rest_server::register_task_control_commands(&mut commando_sock)?;
         commando_sock.spawn()?;
-        proxmox_rest_server::server_state_init()?;
+        proxmox_rest_server::catch_shutdown_signal()?;
+        proxmox_rest_server::catch_reload_signal()?;
         Ok(())
     });