Update
This commit is contained in:
parent
d5a3a85e9a
commit
1bb22db692
10 changed files with 248 additions and 16 deletions
|
|
@ -68,6 +68,8 @@ impl<'a> NodeJsSystemdUserService<'a, Cow<'a, str>, String> {
|
|||
|
||||
let content = format!("[Service]
|
||||
ExecStartPre=rm /var/tmp/{1}-{2}.socket
|
||||
# This only works if the path is a directory
|
||||
WorkingDirectory={0}
|
||||
ExecStart=/usr/bin/nodejs {0}
|
||||
Restart=always
|
||||
Environment=NODE_ENV=production
|
||||
|
|
@ -138,12 +140,27 @@ impl<'a, P, C> Symbol for NodeJsSystemdUserService<'a, P, C> where P: AsRef<str>
|
|||
let file_name = format!("/var/tmp/{}-{}.socket", self.user_name, self.name);
|
||||
// try!(self.command_runner.run_with_args("chmod", &["666", &file_name]));
|
||||
|
||||
sleep(Duration::from_millis(500));
|
||||
let metadata = try!(fs::metadata(file_name.clone()));
|
||||
let mut perms = metadata.permissions();
|
||||
perms.set_mode(0o666);
|
||||
try!(fs::set_permissions(file_name, perms));
|
||||
|
||||
let mut tries = 5;
|
||||
loop {
|
||||
let metadata = fs::metadata(file_name.clone());
|
||||
match metadata {
|
||||
Ok(metadata) => {
|
||||
let mut perms = metadata.permissions();
|
||||
perms.set_mode(0o666);
|
||||
try!(fs::set_permissions(file_name, perms));
|
||||
break;
|
||||
},
|
||||
Err(e) => {
|
||||
if e.kind() == io::ErrorKind::NotFound {
|
||||
tries -= 1;
|
||||
if tries == 0 { return Err("Gave up waiting for socket to appear".to_string().into()); }
|
||||
sleep(Duration::from_millis(500));
|
||||
} else {
|
||||
return Err(Box::new(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue