From c4ab2e3777488736220d53d4adb141b77e7635ac Mon Sep 17 00:00:00 2001 From: primardj Date: Sat, 18 May 2024 15:36:35 +0100 Subject: [PATCH] add start, stop, reload and restart LSB compatible commands. --- .../src/executor/execute_service/sent_signal.rs | 14 ++++++++++++++ .../executor/execute_service/sent_signal/misc.rs | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal.rs b/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal.rs index 4004b85..e52ce5b 100644 --- a/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal.rs +++ b/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal.rs @@ -57,6 +57,20 @@ pub fn sent_signal( svwait_var: i32, verbose: i8, command: &str, mut sv: status_ }, "e" | "x" => { return misc::exit_verbose(sv.sent_signal(b"x"), verbose, svwait_var, sv); + // TODO: Erreur quand le service est déjà exité, et que l'on essaie de le réexiter. + // Solution: retirer le test "e" et "x" pour avant la création de l'objet. + }, + "start" => { + return misc::run_verbose(sv.sent_signal(b"u"), true, 1, svwait_var, sv); + }, + "stop" => { + return misc::run_verbose(sv.sent_signal(b"d"), false, 1, svwait_var, sv); + }, + "reload" => { + return misc::noexcept_verbose(sv.sent_signal(b"h"), 1, sv); + }, + "restart" => { + return misc::run_verbose(sv.sent_signal(b"tcu"), true, 1, svwait_var, sv); }, other => { println!("Error, command {} not implemented.", other); // TODO : Put the real error diff --git a/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal/misc.rs b/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal/misc.rs index f93636f..2589f3a 100644 --- a/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal/misc.rs +++ b/01_phase_rust_src/sv-rustit/src/executor/execute_service/sent_signal/misc.rs @@ -35,7 +35,7 @@ pub fn run_verbose(sent_signal: bool, expected: bool, verbose: i8, svwait_var: i if status == 1 { return 1; } - if sv.is_up() == expected { + if sv.is_up() == expected && sv.is_term() == false { println!("ok: {}", sv.get_status_string()); return 0 }