guix-devel
[Top][All Lists]
Advanced

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

Re: Shepherd news + planned feature removal


From: Thompson, David
Subject: Re: Shepherd news + planned feature removal
Date: Wed, 22 Feb 2023 10:28:03 -0500

Hi Ludo,

On Tue, Feb 21, 2023 at 5:07 PM Ludovic Courtès <ludo@gnu.org> wrote:
>
> Hello Guix!
>
> I recently pushed an updated and rebased variant of
> ‘wip-service-monitor’ in the Shepherd, previously discussed here:
>
>   https://lists.gnu.org/archive/html/guix-devel/2022-06/msg00350.html
>
> I’m going to merge it real soon if there are no objections, with the
> goal of using it as the basis for 0.10.x and hopefully soonish 1.0.x.
>
> The main news are:
>
>   • Services can now be in one of 4 states: stopped, starting, started,
>     and stopping.  (Previously it was just started/stopped.)
>
>   • ‘herd status SERVICE’ reports those new states.
>
>   • ‘start’ waits if the service was already starting; ‘stop’ waits if
>     the service was already being stopped.
>
>   • Services are now started in parallel, to the extent possible.
>
> Internally, the big change is that, in addition to a “service registry”
> actor (a fiber and associated channel where it receives requests), each
> service has an associated actor (likewise, a fiber) that handles
> service-specific operations such as ‘start’ and ‘stop’.  I find it
> aesthetically pleasing and fun to work with; incidentally, it should
> sound familiar to the goblins among us.  :-)
>
> There’s a couple of shepherd features that I’d like to remove:
> “persistency” (sic), and the “unknown” service.  These things were added
> in the early days of dmd ca. 2003 but they’re totally untested, likely
> broken, and probably useless.  If you have objections, now’s the time to
> let it be known.
>
> Feedback welcome!

All of these changes sound like welcome ones to me!  Love the use of
actors for managing services.  Feels kinda like Goblins meets Erlang!
I hope it proves to be a robust change.

- Dave



reply via email to

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