From 38b9d77391cc13083b1d0d546e54acfc0c509cdd Mon Sep 17 00:00:00 2001 From: prplV Date: Thu, 4 Jul 2024 06:07:26 -0400 Subject: [PATCH] little chngs + loop not to hide prcs --- settings.json | 10 ++++---- src/main.rs | 65 +++++++++++++++++++++++++++------------------------ 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/settings.json b/settings.json index cf5fc71..1d37351 100644 --- a/settings.json +++ b/settings.json @@ -17,8 +17,8 @@ "hostname" : "ya.ru", "port" : 443, "triggers" : { - "wait" : 12, - "delay" : 3 + "wait" : 6, + "delay" : 1 } }] } @@ -33,10 +33,10 @@ "src" : "/home/vladislav/web/" }], "services" : [{ - "hostname" : "localhost", - "port" : 8080, + "hostname" : "ya.ru", + "port" : 443, "triggers" : { - "wait" : 21, + "wait" : 14, "delay" : 1 } }] diff --git a/src/main.rs b/src/main.rs index 75f6d8b..d7c698b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -56,7 +56,7 @@ struct ServiceTriggers { #[tokio::main] async fn main() { let processes = load_processes("settings.json"); - let mut error_counter = 0; + // let mut error_counter = 0; if processes.processes.len() == 0 { eprintln!("Error: Processes list is null, runner-rs initialization is stopped"); @@ -109,33 +109,36 @@ async fn run_daemons( proc: &TrackingProcess, tx: mpsc::Sender, rx: &mut mpsc::Receiver -) { - - let run_hand = running_handler(&proc.name, &proc.path, tx.clone()); - let file_hand = file_handler(&proc.name,&proc.dependencies.files, tx.clone()); - let serv_hand = service_handler(&proc.name, &proc.dependencies.services, tx.clone()); +) +{ + loop { + let run_hand = running_handler(&proc.name, &proc.path, tx.clone()); + let file_hand = file_handler(&proc.name,&proc.dependencies.files, tx.clone()); + let serv_hand = service_handler(&proc.name, &proc.dependencies.services, tx.clone()); - tokio::select! { - _ = run_hand => {}, - _ = file_hand => {}, - _ = serv_hand => {}, - _val = rx.recv() => { - match _val.unwrap() { - 1 => { - terminate_process(&proc.name).await; - println!("Dependency handling error: Terminating {} process ..." , &proc.name); - }, - 2 => { - println!("Error due to starting {} process", &proc.name); - }, - 3 => { - terminate_process(&proc.name).await; - println!("Timeout of waiting service-dependency: Terminating {} process ..." , &proc.name); - }, - _ => {}, - } - }, - } + tokio::select! { + _ = run_hand => {}, + _ = file_hand => {}, + _ = serv_hand => {}, + _val = rx.recv() => { + match _val.unwrap() { + 1 => { + println!("Dependency handling error: Terminating {} process ..." , &proc.name); + terminate_process(&proc.name).await; + }, + 2 => { + println!("Error due to starting {} process", &proc.name); + }, + 3 => { + println!("Timeout of waiting service-dependency: Terminating {} process ..." , &proc.name); + terminate_process(&proc.name).await; + }, + _ => {}, + } + }, + } + } + } fn load_processes(json_filename: &str) -> Processes{ @@ -174,7 +177,7 @@ async fn start_process(name: &str, path: &str, tx: mpsc::Sender) -> Result<( // check process status daemon async fn running_handler(name: &str, path: &str, tx: mpsc::Sender){ loop { - // println!("running daemon on {}", name); + println!("running daemon on {}", name); let _ = Command::new("pidof") .arg(name) .output() @@ -194,7 +197,7 @@ async fn running_handler(name: &str, path: &str, tx: mpsc::Sender){ async fn file_handler(name: &str, files: &Vec, tx: mpsc::Sender) { loop { - // println!("file daemon on {}", name); + println!("file daemon on {}", name); if is_active(name) { for file in files { match check_file(&file.filename, &file.src) { @@ -220,8 +223,8 @@ fn check_file(filename: &str, path: &str) -> Result<(), CustomError> { // ?? async fn service_handler(name: &str, services: &Vec, tx: mpsc::Sender) { - 'main_loop: loop { - // println!("service daemon on {}", name); + loop { + println!("service daemon on {}", name); if is_active(name) { for serv in services { match check_service(&serv.hostname, &serv.port) {