guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: branch master updated: doc: Recommend avoiding execl, execle or exec


From: Ludovic Courtès
Subject: Re: branch master updated: doc: Recommend avoiding execl, execle or execlp in mcron job specifications.
Date: Fri, 02 Dec 2022 10:32:22 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Hello,

guix-commits@gnu.org 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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]