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::error::Error;
use std::ffi::OsStr; use std::ffi::OsStr;
use std::fmt; use std::fmt;
use std::fs;
use std::io; use std::io;
use std::path::Path; 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", "enable", self.service_name])?;
self.systemctl_wait_for_dbus(args!["--user", "restart", self.service_name])?; self.systemctl_wait_for_dbus(args!["--user", "restart", self.service_name])?;
if !(self.check_if_service()?) { loop {
return Err(Box::new( if !(self.check_if_service()?) {
UserServiceError::GenericError as UserServiceError<io::Error>, return Err(Box::new(
)); UserServiceError::GenericError as UserServiceError<io::Error>,
} ));
}
fs::metadata(&self.socket_path) if self.socket_path.exists() {
.map(|_| ()) return Ok(());
.map_err(|e| Box::new(e) as Box<dyn Error>) }
sleep(Duration::from_millis(500));
}
} }
fn get_prerequisites(&self) -> Vec<Resource> { fn get_prerequisites(&self) -> Vec<Resource> {