Hi, Lars-Dominik Braun <l...@6xq.net> skribis:
> 1 kill(-18096, SIGTERM) = 0 > 1 newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0444, > st_size=2298, ...}, 0) = 0 > 1 write(17, "shepherd[1]: Service guix-publish has been stopped.\n", 52) > = 52 > 1 socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 36 > 1 setsockopt(36, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 > 1 bind(36, {sa_family=AF_INET, sin_port=htons(8082), > sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EADDRINUSE (Address already in use) > 1 write(23, "(reply (version 0) (result #f) (error (error (version 0) > action-exception start guix-publish system-error (\"bind\" \"~A\" (\"Address > already in use\") (98)))) (messages (\"Service guix-publish has been > stopped.\")))", 208) = 208 > 1 close(23) > ---snap--- > > The obvious explanation would be that stopping does not wait for the > process to actually exit. make-kill-destructor does not waitpid it seems > and 'running is set unconditionally to #f after 'stop has finished. Indeed. This is fixed by Shepherd commit d97592f58603ff51cb280ae57d413c8731e601b3, which will be in the upcoming 0.9.3 release. Thanks, Ludo’.