[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