From bca3ae435452b22a08eb66b7d3ab98d840a87b94 Mon Sep 17 00:00:00 2001 From: namilsk Date: Fri, 9 Jan 2026 19:13:16 +0300 Subject: Implemetned kernel modules, locales and timezones settings. --- init/src/processes/udev.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 init/src/processes/udev.rs (limited to 'init/src/processes/udev.rs') diff --git a/init/src/processes/udev.rs b/init/src/processes/udev.rs new file mode 100644 index 0000000..7cb6a5d --- /dev/null +++ b/init/src/processes/udev.rs @@ -0,0 +1,29 @@ +use std::process::Command; + +// TODO: Rewrite this bad fn +pub fn spawn_udev() -> Result<(), Box> { + let udevd_paths = [ + "/sbin/udevd", + "/usr/sbin/udevd", + "/bin/udevd", + "/usr/bin/udevd", + ]; + let udevd_path = udevd_paths + .iter() + .find(|path| std::path::Path::new(path).exists()) + .ok_or_else(|| -> Box { + "udevd not found in standard locations".into() + })?; + + let mut child = Command::new(udevd_path).arg("--daemon").spawn().map_err( + |e| -> Box { format!("Failed to spawn udevd: {}", e).into() }, + )?; + + child.wait()?; + + Command::new(udevd_path).arg("--trigger").output().map_err( + |e| -> Box { format!("Failed to trigger udev: {}", e).into() }, + )?; + + Ok(()) +} -- cgit v1.2.3