move some misc stuff in another thread
This commit is contained in:
parent
15495a2eb9
commit
06b4d1bf10
3 changed files with 13 additions and 5 deletions
|
@ -12,6 +12,7 @@ use nix::sys::reboot::{reboot, RebootMode};
|
||||||
use nix::sys::signal::Signal;
|
use nix::sys::signal::Signal;
|
||||||
use nix::sys::signal::kill;
|
use nix::sys::signal::kill;
|
||||||
use nix::unistd::Pid;
|
use nix::unistd::Pid;
|
||||||
|
use tokio;
|
||||||
|
|
||||||
fn sigint_handler() {
|
fn sigint_handler() {
|
||||||
println!("Received signal SIGINT");
|
println!("Received signal SIGINT");
|
||||||
|
@ -70,9 +71,16 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
||||||
processes::run("udevadm", ["trigger", "--action=add", "--type=devices"].as_ref()).await;
|
processes::run("udevadm", ["trigger", "--action=add", "--type=devices"].as_ref()).await;
|
||||||
processes::run("udevadm", ["settle"].as_ref()).await;
|
processes::run("udevadm", ["settle"].as_ref()).await;
|
||||||
|
|
||||||
|
// misc stuff in another thread
|
||||||
|
tokio::spawn(async {
|
||||||
println!("setting keymap");
|
println!("setting keymap");
|
||||||
processes::run("loadkeys", ["fr-latin9"].as_ref()).await;
|
processes::run("loadkeys", ["fr-latin9"].as_ref()).await;
|
||||||
|
|
||||||
|
println!("mounting pty");
|
||||||
|
processes::run("mkdir", ["/dev/pts"].as_ref()).await;
|
||||||
|
processes::run("mount", ["devpts", "/dev/pts", "-t", "devpts"].as_ref()).await;
|
||||||
|
});
|
||||||
|
|
||||||
println!("load dbus");
|
println!("load dbus");
|
||||||
processes::run("mkdir", ["/run/dbus"].as_ref()).await;
|
processes::run("mkdir", ["/run/dbus"].as_ref()).await;
|
||||||
processes::run("dbus-daemon", ["--system"].as_ref()).await; // a lot of services depend on dbus being on
|
processes::run("dbus-daemon", ["--system"].as_ref()).await; // a lot of services depend on dbus being on
|
||||||
|
|
|
@ -68,11 +68,11 @@ pub async fn run(path: &str, args: &[&str]) {
|
||||||
let pid = child.id();
|
let pid = child.id();
|
||||||
match child.await {
|
match child.await {
|
||||||
Ok(_) => {},
|
Ok(_) => {},
|
||||||
Err(err) => eprintln!("failed to wait for process with pid {}, error is {}", pid, err)
|
Err(err) => eprintln!("failed to wait for process {} with pid {}, error is {}", path, pid, err)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
Err(err) => eprintln!("could not spawn {}, error is {}", "", err)
|
Err(err) => eprintln!("could not spawn {}, error is {}", path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ pub async fn launch_services() {
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
println!("starting {}", s.name);
|
println!("starting {}", s.name);
|
||||||
let args: Vec<&str> = s.start.args.iter().map(|e| e.as_str()).collect();
|
let args: Vec<&str> = s.start.args.iter().map(|e| e.as_str()).collect();
|
||||||
processes::run_wait(&s.start.command, &args[..]).await;
|
processes::run(&s.start.command, &args[..]).await;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue