Wait for socket in user service

This commit is contained in:
Adrian Heine 2019-09-26 21:53:12 +02:00
parent 3ccf64fac1
commit de98c07251

View file

@ -2,7 +2,6 @@ use std::borrow::Cow;
use std::error::Error;
use std::ffi::OsStr;
use std::fmt;
use std::fs;
use std::io;
use std::path::Path;
@ -188,15 +187,18 @@ impl<'a, C: AsRef<str>, R: CommandRunner> Symbol for UserService<'a, C, R> {
self.systemctl_wait_for_dbus(args!["--user", "enable", self.service_name])?;
self.systemctl_wait_for_dbus(args!["--user", "restart", self.service_name])?;
if !(self.check_if_service()?) {
return Err(Box::new(
UserServiceError::GenericError as UserServiceError<io::Error>,
));
}
loop {
if !(self.check_if_service()?) {
return Err(Box::new(
UserServiceError::GenericError as UserServiceError<io::Error>,
));
}
fs::metadata(&self.socket_path)
.map(|_| ())
.map_err(|e| Box::new(e) as Box<dyn Error>)
if self.socket_path.exists() {
return Ok(());
}
sleep(Duration::from_millis(500));
}
}
fn get_prerequisites(&self) -> Vec<Resource> {