[pbs-devel] [PATCH proxmox-backup 6/6] proxmox-backup-manager: setup worker and command socket
Dietmar Maurer
dietmar at proxmox.com
Thu Sep 23 12:13:29 CEST 2021
---
src/bin/proxmox-backup-manager.rs | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/src/bin/proxmox-backup-manager.rs b/src/bin/proxmox-backup-manager.rs
index b9e4e2ff..a03e1db8 100644
--- a/src/bin/proxmox-backup-manager.rs
+++ b/src/bin/proxmox-backup-manager.rs
@@ -5,6 +5,7 @@ use anyhow::{format_err, Error};
use serde_json::{json, Value};
use proxmox::api::{api, cli::*, RpcEnvironment};
+use proxmox::tools::fs::CreateOptions;
use pbs_client::{connect_to_localhost, display_task_log, view_task_result};
use pbs_tools::percent_encoding::percent_encode_component;
@@ -359,9 +360,7 @@ async fn get_versions(verbose: bool, param: Value) -> Result<Value, Error> {
Ok(Value::Null)
}
-fn main() {
-
- proxmox_backup::tools::setup_safe_path_env();
+async fn run() -> Result<(), Error> {
let cmd_def = CliCommandMap::new()
.insert("acl", acl_commands())
@@ -401,12 +400,27 @@ fn main() {
CliCommand::new(&API_METHOD_GET_VERSIONS)
);
+ let backup_user = pbs_config::backup_user()?;
+ let file_opts = CreateOptions::new().owner(backup_user.uid).group(backup_user.gid);
+ proxmox_rest_server::init_worker_tasks(pbs_buildcfg::PROXMOX_BACKUP_LOG_DIR_M!().into(), file_opts.clone())?;
+ let mut commando_sock = proxmox_rest_server::CommandoSocket::new(proxmox_rest_server::our_ctrl_sock(), backup_user.gid);
+ proxmox_rest_server::register_task_control_commands(&mut commando_sock)?;
+ commando_sock.spawn()?;
let mut rpcenv = CliEnvironment::new();
rpcenv.set_auth_id(Some(String::from("root at pam")));
- pbs_runtime::main(run_async_cli_command(cmd_def, rpcenv));
+ run_async_cli_command(cmd_def, rpcenv).await; // this call exit(-1) on error
+
+ Ok(())
+}
+
+fn main() -> Result<(), Error> {
+
+ proxmox_backup::tools::setup_safe_path_env();
+
+ pbs_runtime::main(run())
}
// shell completion helper
--
2.30.2
More information about the pbs-devel
mailing list