Hi, when killing shepherd i.e `pkill -9 shepherd` it left behind `default-socket-file` and when restarted whithout remove the socket like --------------------------------------------------------- rm /var/run/user/1000/shepherd/socket ---------------------------------------------------------
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.
>From 7d16c47bad6fd98cf0838d2fcd62735d846e7bab Mon Sep 17 00:00:00 2001 From: gfleury <gfle...@disroot.org> Date: Sun, 27 Sep 2020 09:29:37 +0200 Subject: [PATCH] ensure that `default-socket-file` is not present. * modules/shepherd.scm(main): remove a possible `default-socket-file` left by a previous instance. --- modules/shepherd.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/shepherd.scm b/modules/shepherd.scm index 9f80f62..d18567e 100644 --- a/modules/shepherd.scm +++ b/modules/shepherd.scm @@ -147,7 +147,10 @@ already ~a threads running, disabling 'signalfd' support") (initialize-cli) (let ((config-file #f) - (socket-file default-socket-file) + (socket-file + (begin + (false-if-exception (delete-file default-socket-file)) + default-socket-file)) (pid-file #f) (secure #t) (logfile #f)) -- 2.28.0