Merge pull request #685 from LibreQoE/issue_669_restart_scheduler

Restart LibreQoS scheduler when Reload is clicked
This commit is contained in:
Robert Chacón authored and GitHub committed 2025-04-09 10:56:00 -06:00
commit 802204677c
1 file changed
+22 -6
+22 -6
View File
@@ -35,16 +35,32 @@ pub fn load_libreqos() -> Result<String, ProgramControlError> {
return Err(ProgramControlError::PythonNotFound);
}
let result = Command::new(PYTHON_PATH)
let reload_result = Command::new(PYTHON_PATH)
.current_dir(working_directory()?)
.arg("LibreQoS.py")
.output()
.map_err(|_| ProgramControlError::CommandFailed)?;
let stdout =
String::from_utf8(result.stdout).map_err(|_| ProgramControlError::StdInErrAccess)?;
let stderr =
String::from_utf8(result.stderr).map_err(|_| ProgramControlError::StdInErrAccess)?;
Ok(stdout + &stderr)
let reload_stdout =
String::from_utf8(reload_result.stdout).map_err(|_| ProgramControlError::StdInErrAccess)?;
let reload_stderr =
String::from_utf8(reload_result.stderr).map_err(|_| ProgramControlError::StdInErrAccess)?;
// Also reload the scheduler service
let mut result_display = reload_stdout + &reload_stderr + "\n\nReloading Scheduler\n";
let restart_result = Command::new("/bin/systemctl")
.arg("restart")
.arg("lqos_scheduler")
.output()
.map_err(|_| ProgramControlError::CommandFailed)?;
let restart_stdout =
String::from_utf8(restart_result.stdout).map_err(|_| ProgramControlError::StdInErrAccess)?;
let restart_stderr =
String::from_utf8(restart_result.stderr).map_err(|_| ProgramControlError::StdInErrAccess)?;
result_display += &restart_stdout;
result_display += &restart_stderr;
Ok(result_display)
}
#[derive(Error, Debug)]