Subject: Re: bug#39708: nfs-service-type broken: rpc.mountd respawns too quickly

From: Ludovic Courtès <[email-masked]>
Date: Sun, 08 Mar 2020 12:13:41 +0100

Hi!

Maxim Cournoyer <[email-masked]> skribis:

> I think I've gathered a clue!

[...]

> scheme@(shepherd service)> (make-forkexec-constructor
>   (list "/gnu/store/qyz1bncxlkxv44c03sva2akfsyqzkzh5-nfs-utils-2.4.2/sbin/rpc.mountd" "--debug" "all"))
> $5 = #<procedure 7f67f82862a0 at shepherd/service.scm:930:8 args>
> scheme@(shepherd service)> ($5)
> $6 = 816
> scheme@(shepherd service)> (system "pidof rpc.mountd")
> warning: 'waitpid' -1 failed unexpectedly: No child processes
> 817

So that means that rpc.mountd “daemonizes”.  Thus, shepherd shouldn’t
look at the PID of the process it spawns, but rather at what
rpc.mountd’s PID file contains (I assume it creates a PID file,
right?).  IOW, we need to pass #:pid-file to ‘make-forkexec-constructor’.

Does that work for you?

Thanks for debugging!

Ludo’.