unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Chris Marusich <cmmarusich@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: One-shot Shepherd services
Date: Mon, 29 Apr 2019 20:33:09 -0700	[thread overview]
Message-ID: <87h8agyxoq.fsf@gmail.com> (raw)
In-Reply-To: <87ftqfngda.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Thu, 18 Apr 2019 23:38:41 +0200")

[-- Attachment #1: Type: text/plain, Size: 2063 bytes --]

Ludovic Courtès <ludo@gnu.org> writes:

> Today I added support for “one-shot” services in the Shepherd:
>
>   https://git.savannah.gnu.org/cgit/shepherd.git/commit/?id=c121eedfff7a50feddcf08e173d2b0dd807e8804
>
> One-shot services start, perform a short action, and are immediately
> marked as “stopped.”  (systemd has something similar:
> <https://www.freedesktop.org/software/systemd/man/systemd.service.html>.)
>
> The use case is initialization or cleanup actions like the ‘user-homes’
> service.  So far ‘user-homes’ is a regular service whose ‘start’ method
> always fails; as a result, we always see this message:
>
>   Service user-homes could not be started.
>
> From there on, we’ll be able to mark this service as one-shot (patch
> below), and thus shepherd will notice that it successfully started (or
> not) and yet mark it as stopped, which was always the intent.
>
> There are other cases where this could be useful.  For instance, we
> could turn service activation snippets into one-shot services.
>
> Since this augments the Shepherd API, I plan to release it as 0.6.0
> in time for Guix 1.0.  It contains other rather minor changes compared
> to 0.5.0.

This seems like a good change.

At first I was a little confused about why we would ever want to use a
one-shot shepherd service instead of an activation snippet, but after
reviewing the account-shepherd-service, I think I understand.  It seems
that we make it a one-shot shepherd service instead of an activation
snippet so that we can take advantage of shepherd's service dependency
management.  In the case of account-shepherd-service, it looks like we
made it a shepherd service to ensure that it would run after
'file-systems' is up.  This makes sense, since it could be a little
awkward to try to ensure proper execution order by extending the
activation service, and even if we did that, it would duplicate the
dependency management logic that shepherd gives us already.

So yeah, it makes sense to me.

-- 
Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

  parent reply	other threads:[~2019-04-30  3:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-18 21:38 One-shot Shepherd services Ludovic Courtès
2019-04-19  4:09 ` znavko
2019-04-19  8:36   ` Ludovic Courtès
2019-04-19  6:40 ` Pierre Neidhardt
2019-04-19 15:02   ` User Services Joshua Branson
2019-04-19 15:33     ` Pierre Neidhardt
2019-04-30  3:33 ` Chris Marusich [this message]
2019-04-30 14:23   ` One-shot Shepherd services Ludovic Courtès
2019-04-30 17:24     ` Gábor Boskovits
2019-05-03 13:53       ` Ludovic Courtès
2019-05-04  5:52         ` Chris Marusich
2019-05-03 19:15 ` Thompson, David

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h8agyxoq.fsf@gmail.com \
    --to=cmmarusich@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).