hello, 27 septembre 2020 16:29 "Danny Milosavljevic" <dan...@scratchpost.org> a écrit:
> Hello, > > On Sun, 27 Sep 2020 10:00:03 +0200 > gfleury <gfle...@disroot.org> wrote: > >> it throws a error: >> --------------------------------------------------------- >> 3 (primitive-load "/home/gfleury/prod/shepherd/./shepherd") >> In shepherd.scm: >> 56:14 2 (main . _) >> 49:6 1 (open-server-socket _) >> In unknown file: >> 0 (bind #<input-output: socket 16> #(1 "/run/user/1000?") #) >> >> ERROR: In procedure bind: >> In procedure bind: Address already in use >> --------------------------------------------------------- >> >> something like this patch can fix it. > > Please don't do it that way. > > Shepherd has to be able to ascertain that it is not running yet before > starting yet another instance in parallel. > i missed that part. > I don't like PID and socket files either--but it's just what we have > available. > > Maybe find out who is at the other side of the socket > (connect and then use getpeername on the socket or something ? > maybe even just trying to connect fails, which would be good for this). > > I think UNIX domain sockets are made in a way that it doesn't matter > whether the server or the client connects first, so even that would > probably not be reliable. > > So maybe just live with having to remove the socket file yourself. > > I'm open to other suggestions that are safe that accomplish the same goal. yes a better solution is needed.