[Top][All Lists]

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

GNU Shepherd 0.10.2 released

From: Ludovic Courtès
Subject: GNU Shepherd 0.10.2 released
Date: Mon, 17 Jul 2023 19:49:41 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

We are pleased to announce the GNU Shepherd version 0.10.2, a bug-fix
release of the new 0.10.x series, representing 28 commits over 7 weeks.

The 0.10.x series is a major overhaul towards 1.0, addressing shortcomings
and providing new features that help comprehend system state.

• About

  The GNU Shepherd is a service manager written in Guile that looks
  after the herd of daemons running on the system.  It can be used as an
  “init” system (PID 1) and also by unprivileged users to manage
  per-user daemons—e.g., tor, privoxy, mcron.  It supports several
  daemon startup mechanisms, including inetd and systemd-style socket
  activation.  The GNU Shepherd is configured in Guile Scheme and can be
  extended in the same language.  It builds on a simple memory-safe and
  callback-free programming model.

  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:

  d0ea3e212eb62b98f6ea9567be66069571747d41  shepherd-0.10.2.tar.gz
  knKDrUjHjs8YAWB6Ex9IGUegum5zOYCG8uU2vF5qNG0  shepherd-0.10.2.tar.gz

  The SHA256 checksum is base64 encoded, instead of the
  hexadecimal encoding that most checksum tools default to.

  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.10.2.tar.gz.sig

  The signature should match the fingerprint of the following key:

    pub   rsa4096 2014-08-11 [SC]
          3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
    uid           [  full  ] Ludovic Courtès <>
    uid           [  full  ] Ludovic Courtès <>
    uid           [  full  ] Ludovic Courtès (Inria) <>

  If that command fails because you don't have the required public key,
  or that public key has expired, try the following commands to retrieve
  or refresh it, and then rerun the 'gpg --verify' command.

    gpg --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5

  As a last resort to find the key, you can try the official GNU

    wget -q
    gpg --keyring gnu-keyring.gpg --verify shepherd-0.10.2.tar.gz.sig

  This release was bootstrapped with the following tools:
    Autoconf 2.71
    Automake 1.16.5
    Makeinfo 7.0.3
    Help2man 1.49.2

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

  ** ‘shepherd’ loads configuration file asynchronously

  Up to 0.10.1, ‘shepherd’ would load the user-provided configuration file
  synchronously: it would write its PID file and start listening for incoming
  connections only after the configuration file has been loaded.  The
  configuration file is now loaded in the background, letting users interact
  with shepherd (using the ‘herd’ command) early on.

  ** ‘shepherd’ keeps going upon configuration file errors

  Up to 0.10.1, ‘shepherd’ would abruptly exit when an error would occur while
  loading the configuration file—service startup failure, uncaught exception,
  etc.  It now reports the error but keeps going, again letting users fix any
  problems dynamically.

  ** New #:respawn-limit parameter to ‘service’

  The ‘service’ form supports a new #:respawn-limit parameter to specify
  per-service respawn limits.

  ** Disabled services are truly disabled

  Previously, manually running ‘herd disable SERVICE’ would not prevent SERVICE
  from being respawned or even from being started.  This is now fixed.

  ** Disabled flag is preserved when replacing a service

  When replacing a service, for instance by running ‘herd load root conf.scm’ or
  by running ‘guix system reconfigure’, the service replacement starts as
  disabled if the original service was disabled.

  ** Signals are properly handled after ‘daemonize’

  Starting with version 0.9.0, calling the ‘daemonize’ action on the ‘root’
  service would cause shepherd to miss signals; in particular, it would miss
  SIGCHLD signals, making it hardly usable.  This is now fixed.

  ** New ‘unregister-services’ procedure

  The (shepherd service) module now exports ‘unregister-services’.

  ** New Bash completion

  A Bash completion file is now installed, providing tab completion for the
  ‘herd’ command.

  ** ‘herd’ shows a hint when the service and action are likely swapped

  The hint is printed for instance when typing ‘herd foobar start’.

  ** Updated translations: de, ro, sv, uk

  This release is fully translated to German, Romanian, Swedish, and Ukrainian;
  partial translations are available for a dozen of languages.  To help make the
  Shepherd speak your language, check out the Translation Project:

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]