removing all related code to nohup/daemonize
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -4,4 +4,3 @@ Cargo.lock | ||||
| **/*.rs.bk | ||||
| *.pdb | ||||
| /target | ||||
| output.log | ||||
|   | ||||
| @@ -7,5 +7,4 @@ edition = "2021" | ||||
| tokio = { version = "1.35.1", features = ["full"]} | ||||
| kagiyama = "0.3.0" | ||||
| anyhow = "1.0.79" | ||||
| daemonize = "0.5.0" | ||||
| mtemp = "0.1.21" | ||||
|   | ||||
							
								
								
									
										38
									
								
								manage.sh
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								manage.sh
									
									
									
									
									
								
							| @@ -1,38 +0,0 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| start_monitor() { | ||||
|   nohup cargo run --release > output.log 2>&1 & | ||||
|   sleep 1 | ||||
|   echo "Monitor started" | ||||
| } | ||||
|  | ||||
| stop_monitor() { | ||||
|   if [ -f /tmp/mtemp-monitor.pid ]; then | ||||
|     pid=$(cat /tmp/mtemp-monitor.pid) | ||||
|     echo "Stopping monitor with PID $pid" | ||||
|     kill $pid | ||||
|     rm /tmp/mtemp-monitor.pid | ||||
|     echo "Monitor stopped" | ||||
|   else | ||||
|     echo "Monitor is not running (PID file not found)" | ||||
|   fi | ||||
| } | ||||
|  | ||||
| case "$1" in | ||||
|   start) | ||||
|     start_monitor | ||||
|     ;; | ||||
|   stop) | ||||
|     stop_monitor | ||||
|     ;; | ||||
|   restart) | ||||
|     stop_monitor | ||||
|     sleep 1 | ||||
|     start_monitor | ||||
|     ;; | ||||
|   *) | ||||
|     echo "Usage: $0 {start|stop|restart}" | ||||
|     exit 1 | ||||
|     ;; | ||||
| esac | ||||
|  | ||||
							
								
								
									
										39
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								src/main.rs
									
									
									
									
									
								
							| @@ -1,34 +1,16 @@ | ||||
| use anyhow::{anyhow, Context, Result}; | ||||
| use daemonize::Daemonize; | ||||
| use anyhow::Result; | ||||
| use kagiyama::prometheus::metrics::gauge::Gauge; | ||||
| use kagiyama::{AlwaysReady, Watcher}; | ||||
| use mtemp::Mtemp; | ||||
| use std::env; | ||||
| use std::fs::File; | ||||
| use std::sync::atomic::AtomicU64; | ||||
| use tokio::signal::ctrl_c; | ||||
| use tokio::spawn; | ||||
| use tokio::time::sleep; | ||||
| use tokio::time::Duration; | ||||
|  | ||||
| fn main() -> Result<()> { | ||||
|     let name = "mtemp-monitor"; | ||||
|     let stdout = File::create(format!("/tmp/{}.log", name)).context("Error creating log file")?; | ||||
|     let daemonize = Daemonize::new() | ||||
|         .pid_file(format!("/tmp/{}.pid", name)) | ||||
|         .stdout(stdout) | ||||
|         .chown_pid_file(true) | ||||
|         .working_directory("/"); | ||||
|  | ||||
|     match daemonize.start() { | ||||
|         Ok(_) => { | ||||
|             println!("daemon started"); | ||||
|             tokio_main() | ||||
|         } | ||||
|         Err(err) => Err(anyhow!("{:?}", err)), | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[tokio::main] | ||||
| async fn tokio_main() -> Result<()> { | ||||
| async fn main() -> Result<()> { | ||||
|     let interval_secs: u64 = env::var("MTEMP_INTERVAL") | ||||
|         .unwrap_or_else(|_| "1".to_string()) | ||||
|         .parse()?; | ||||
| @@ -38,6 +20,8 @@ async fn tokio_main() -> Result<()> { | ||||
|     let mut watcher = Watcher::<AlwaysReady>::default(); | ||||
|     watcher.start_server(addr.parse()?).await; | ||||
|  | ||||
|     { | ||||
|         spawn(async move { | ||||
|             let interval = Duration::from_secs(interval_secs); | ||||
|  | ||||
|             let cpu_gauge = Gauge::<f64, AtomicU64>::default(); | ||||
| @@ -70,9 +54,6 @@ async fn tokio_main() -> Result<()> { | ||||
|                 ); | ||||
|             } | ||||
|  | ||||
|     println!("interval set every {} seconds", interval_secs); | ||||
|     println!("listening on {}", addr); | ||||
|  | ||||
|             loop { | ||||
|                 sleep(interval).await; | ||||
|                 if let Some(cpu) = Mtemp::cpu() { | ||||
| @@ -85,4 +66,12 @@ async fn tokio_main() -> Result<()> { | ||||
|                     disk_gauge.set(disk); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     println!("interval set every {} seconds", interval_secs); | ||||
|     println!("listening on {}", addr); | ||||
|     ctrl_c().await?; | ||||
|  | ||||
|     Ok(()) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user