[Top][All Lists]

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

GNU Shepherd 0.9.3 released

From: Ludovic Courtès
Subject: GNU Shepherd 0.9.3 released
Date: Thu, 17 Nov 2022 10:39:19 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

We are pleased to announce the GNU Shepherd version 0.9.3.  This is a
bug-fix release, representing 16 commits by 1 person over 2 months.

• About

  The GNU Daemon Shepherd or GNU Shepherd is a service manager written
  in Guile that looks after the herd of system services.  It provides
  dependency-based management for system services: daemons such as
  ‘sshd’, programs such as Xorg, as well as user-provided actions.  The
  GNU Shepherd may also be used by unprivileged users to manage per-user
  daemons—e.g., tor, privoxy, mcron, etc.  It is written in Guile
  Scheme, and is configured and extended using Guile.

  The GNU Shepherd is developed jointly with the GNU Guix project; it is
  used as the init system of Guix, GNU’s advanced GNU/Linux distribution.

• Download

  Here are the compressed sources and a GPG detached signature[*]:

  Use a mirror for higher download bandwidth:

  Here are the SHA1 and SHA256 checksums:

  bb6694367f5f0a620c4999050133dad6d3754ecf  shepherd-0.9.3.tar.gz

  [*] Use a .sig file to verify that the corresponding file (without the
  .sig suffix) is intact.  First, be sure to download both the .sig file
  and the corresponding tarball.  Then, run a command like this:

    gpg --verify shepherd-0.9.3.tar.gz.sig

  If that command fails because you don't have the required public key,
  then run this command to import it:

    gpg --keyserver \
        --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5

  and rerun the 'gpg --verify' command.

  This release was bootstrapped with the following tools:
    Autoconf 2.71
    Automake 1.16.5
    Makeinfo 7.0
    Help2man 1.48.5

• Changes since version 0.9.2 (excerpt from the NEWS file)

  ** Service ‘stop’ is now synchronous

  Previously, ‘herd stop SERVICE’ would send SIGTERM to the service’s process
  and immediately move on without waiting for the process to actually terminate.
  This could cause problems for example when running ‘herd restart SERVICE’:
  there was a possibility that a new instance of the service would be spawned
  before the previous one had terminated.

  This is now fixed: ‘stop’ only returns once the process has actually
  terminated.  Furthermore, the destructor returned by ‘make-kill-destructor’
  sends SIGKILL after some grace period has expired if the process is still
  around; this is configurable with #:grace-period and

  ** Non-blocking replacement for ‘system*’

  Service code can now call ‘system*’ lightheartedly: shepherd installs a
  cooperative, non-blocking replacement for Guile’s ‘system*’ procedure.
  Concretely, it means that it’s OK to use ‘system*’, say, in the ‘start’ method
  of a service: it won’t block shepherd, one can still interact with it with

  ** Fewer continuation barriers

  The ‘stop’ method of services, and ‘eval’ and ‘load’ actions of the ‘root’
  service, and a few other points acted as “continuation barriers”, meaning that
  user code would not be allowed to suspend the current fiber for example by
  calling the ‘sleep’ procedure from (fiber).  These limitations have been

  ** Reduced memory consumption while logging

  Service output logging allocates less memory than before.

  ** Updated translations: ro, sr

Please report bugs to
Join for discussions.

Ludovic, on behalf of the Shepherd herd.

Attachment: signature.asc
Description: PGP signature

reply via email to

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