Hello,
[email protected] skribis:
> diff --git a/doc/guix.texi b/doc/guix.texi
> index e547d469f4..caa6976a82 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -18940,9 +18940,8 @@ gexps to introduce job definitions that are passed to
> mcron
> ;; job's action as a Scheme procedure.
> #~(job '(next-hour '(3))
> (lambda ()
> - (execl (string-append #$findutils "/bin/updatedb")
> - "updatedb"
> - "--prunepaths=/tmp /var/tmp /gnu/store"))
> + (system* (string-append #$findutils "/bin/updatedb")
> + "--prunepaths=/tmp /var/tmp /gnu/store"))
> "updatedb"))
>
> (define garbage-collector-job
> @@ -18980,6 +18979,12 @@ the job would appear as ``Lambda function'' in the
> output of
> @command{herd schedule mcron}, which is not nearly descriptive enough!
> @end quotation
>
> +@quotation Tip
> +Avoid calling the Guile procedures @code{execl}, @code{execle} or
> +@code{execlp} inside a job specification, else mcron won't be able to
> +output the completion status of the job.
> +@end quotation
The problem is that this creates an additional process and the first one
now just sits there in ‘waitpid’.
Could mcron return the completion status of the process that calls the
thunk? It suppose it’s already monitoring it (via SIGCHLD or a direct
‘waitpid’ call) so it should have that info available, no?
I hope this makes sense.
Ludo’.