summaryrefslogtreecommitdiff
path: root/init/src/main.rs
diff options
context:
space:
mode:
authornamilsk <namilsk@namilsk.tech>2026-02-02 00:19:48 +0300
committernamilsk <namilsk@namilsk.tech>2026-02-02 00:19:48 +0300
commit6a63e7e777fb9182ff5b68aa2167bd5f2e548f0e (patch)
tree878936a2af4b6bf3372ca9f586b2cfe7f9519348 /init/src/main.rs
parenta5749a5d8d38b0db2ce5548473f8a61b674578a6 (diff)
Implemented mainloop functions (e.g. restarting services), autofmt all
Diffstat (limited to 'init/src/main.rs')
-rw-r--r--init/src/main.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/init/src/main.rs b/init/src/main.rs
index 40e47a4..fa7d086 100644
--- a/init/src/main.rs
+++ b/init/src/main.rs
@@ -4,8 +4,8 @@ mod log;
mod mounts;
mod pid_one;
mod processes;
-mod signals;
mod services;
+mod signals;
use crate::host::locale;
use crate::host::set::set_hostname;
@@ -15,17 +15,19 @@ use crate::mounts::fstab::FstabEntry;
use crate::mounts::rescue;
use crate::pid_one::check_pid;
use crate::processes::udev::spawn_udev;
-use crate::services::unit_parser::Runlevel;
+use crate::services::units::{Runlevel, services_mainloop};
use crate::signals::sigchld;
// RULE: I will not use .expect() and .unwrap() in this project. This causes panic,
// which will affect stability.
-use std::sync::Mutex;
+use std::sync::Mutex;
+use std::thread;
/// Variable which show current runlevel;
-pub static mut RUNLEVEL_STATE: Mutex<Runlevel> = Mutex::new(Runlevel::Undefined);
+pub static RUNLEVEL_STATE: Mutex<Runlevel> = Mutex::new(Runlevel::Undefined);
+// TODO: Add proper RUNLEVEL_STATE switching
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("Initializing your system.");
if let Err(e) = check_pid() {
@@ -77,5 +79,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let _ = sigchld::setup_sigchld_handler();
+ thread::spawn(move || services_mainloop());
+
Ok(())
}