guix-devel
[Top][All Lists]
Advanced

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

Re: The Shepherd on Fibers


From: Ludovic Courtès
Subject: Re: The Shepherd on Fibers
Date: Tue, 29 Mar 2022 15:16:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hi!

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

> I have pushed a ‘wip-fibers’ branch of the Shepherd:
>
>   https://git.savannah.gnu.org/cgit/shepherd.git/log/?h=wip-fibers
>
> The goal is to make shepherd (the daemon) use Fibers¹ for concurrency.

The latest news are:

  1. Support for inetd-style services¹, where shepherd listens and
     accepts client connections, starts the daemon and hands it the
     connection socket—e.g., ‘sshd -i’.

     Each daemon process is handled as a “transient service”, a new type
     of service that is automatically unregistered when it’s done.  You
     can see those when running ‘herd status’; in the OpenSSH example,
     you’d see ‘sshd-1’, ‘sshd-2’, etc. corresponding to individual SSH
     client connections.

  2. Support for systemd-style “socket activation”², where shepherd
     listens, spawns the daemon when the first request arrives, and
     hands it the *listening* socket.

     From the user viewpoint, this one is similar to the existing
     ‘make-forkexec-constructor’ type of service.  The main difference
     is that its “running value” as shown by ‘herd status SERVICE’ is
     initially a socket and then becomes a PID.

My plan is to merge ‘wip-fibers’ in ‘master’, publish a release
candidate, publish a ‘wip-’ branch of Guix that we can use for testing,
and hopefully release the Shepherd 0.9.0 within a week or two.

Ludo’.

¹ https://www.gnu.org/software/inetutils/manual/html_node/inetd-invocation.html
² 
https://www.freedesktop.org/software/systemd/man/daemon.html#Socket-Based%20Activation



reply via email to

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