GNU bug report logs -
#74997
[PATCH 1/5] import: utils: Rename guix-name to downstream-package-name.
Previous Next
Reported by: Herman Rimm <herman <at> rimm.ee>
Date: Fri, 20 Dec 2024 17:34:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #40 received at 74997 <at> debbugs.gnu.org (full text, mbox):
Hi Ludovic,
Ludovic Courtès <ludo <at> gnu.org> writes:
> * gnu/services/shepherd.scm (shepherd-timer-service-type)
> (shepherd-transient-service-type): New variables.
> * doc/guix.texi (Shepherd Services): Document them.
>
> Change-Id: I9b622e7e947e7a6384c2701a313d0c7080a0a5f6
> ---
> doc/guix.texi | 33 ++++++++++++++++++++++++
> gnu/services/shepherd.scm | 54 +++++++++++++++++++++++++++++++++++++--
> 2 files changed, 85 insertions(+), 2 deletions(-)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 0015d739bb..3e377ca9f4 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -45684,6 +45684,39 @@ Shepherd Services
> (shepherd my-shepherd))))))
> @end lisp
>
> +@cindex @code{transient} service, Shepherd
> +@defvar shepherd-transient-service-type
> +This service type represents the Shepherd's @code{transient} service,
> +which lets you spawn commands in the background and interact with them
> +as regular Shepherd service; it is similar to @command{systemd-run}.
> +
> +For example, the command below spawns @command{rsync} in the background,
> +in an environment where the @env{SSH_AUTH_SOCK} environment variable has
> +the given value:
> +
> +@example
> +herd spawn transient -E SSH_AUTH_SOCK=$SSH_AUTH_SOCK -- \
> + rsync -e ssh -vur . backup.example.org:
> +@end example
Neat!
> +@xref{Transient Service Maker,,, shepherd, The GNU Shepherd Manual}, for
> +more info on the @code{transient} service.
> +@end defvar
> +
> +@cindex @code{timer} service, Shepherd
> +@defvar shepherd-timer-service-type
> +This is the service type representing the Shepherd's @code{timer}
> +service, which lets you schedule the execution of commands, similar to
> +the venerable @command{at} command. Here is an example:
> +
> +@example
> +herd schedule timer at 07:00 -- mpg123 Music/alarm.mp3
> +@end example
Also nice, though I'd use 'ogg123 Music/alarm.ogg' to promote more free
formats!
[...]
> -;;; shepherd.scm ends here
> +
> +;;;
> +;;; Timer and transient service maker.
> +;;;
> +
> +(define shepherd-timer-service-type
> + (shepherd-service-type
> + 'shepherd-timer
> + (const (shepherd-service
> + (provision '(timer))
> + (requirement '(user-processes))
> + (modules '((shepherd service timer)))
> + (free-form #~(timer-service
> + '#$provision
> + #:requirement '#$requirement))))
> + #t ;ignored
> + (description "The Shepherd @code{timer} service lets you schedule commands
> +dynamically, similar to the @code{at} command that your grandparents would use
> +on that Slackware they got on a floppy disk. For example, consider this
> +command:
> +
> +@example
> +herd schedule timer at 07:00 -- mpg123 Music/alarm.mp3
> +@end example
Ditto (I'd use Ogg Vorbis in the example).
> +It does exactly what you would expect.")))
> +
> +(define shepherd-transient-service-type
> + (shepherd-service-type
> + 'shepherd-transient
> + (const (shepherd-service
> + (provision '(transient))
> + (requirement '(user-processes))
> + (modules '((shepherd service transient)))
> + (free-form #~(transient-service
> + '#$provision
> + #:requirement '#$requirement))))
> + #t ;ignored
> + (description "The Shepherd @code{transient} service lets you run commands
> +asynchronously, in the background, similar to @command{systemd-run}, as in
> +this example:
> +
> +@example
> +herd spawn transient -E SSH_AUTH_SOCK=$SSH_AUTH_SOCK -- \\
> + rsync -e ssh -vur . backup.example.org:
> +@end example
> +
> +This runs @command{rsync} in the background, as a service that you can inspect
> +with @command{herd status} and stop with @command{herd stop}.")))
Neat! Taking into account my previous nitpick:
Reviewed-by: Maxim Cournoyer <maxim.cournoyer <at> gmail>
--
Thanks,
Maxim
This bug report was last modified 123 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.