GNU Shepherd 0.10 has already been released and these are its news

GNU Shepherd

GNU Shepherd is a service manager

Almost after a year since the last release, the new version of the service manager was released GNU Shepherd 0.10 (previously known as dmd), which is being developed by the developers of the GNU Guix distribution as an alternative to system dependency-aware SysV-init initialization.

This new release of GNU Shepherd 0.10 represents 132 commits of two people, plus it is considered as a release, as it addresses the shortcomings and provide new features
They help to understand the state of the system.

GNU Shepherd is a service manager written in Guile that looks after the "herd" daemons that run on the system, since pprovides userland functionality asynchronously as services It can be used as a system init (PID 1) and also by non-privileged users to manage per-user daemons, eg tor, privoxy, mcron.

It is noted that it supports several daemon startup mechanisms, including inetd and systemd-style trigger socket. GNU Shepherd is configured in the Guile Scheme and can be extended in the same language. It is based on a simple memory-safe and no-callback programming model.

At the core of the Shepherd model of userspace initialization is the concept of extension, a form of composability in which services are designed to overlap other services, augmenting them with more elaborate or specialized behavior as desired.

Main new features of GNU Shepherd 0.10

In this new version of GNU Shepherd 0.10 that is presented, it stands out that new intermediate service states: "starting" and "stopping", which are displayed by running the "herd status" command and determining if the service is in the process of being started or stopped (previously only herd statuses were supported "running" and "stopped").

Another change that stands out in the new version is that blocking of re-execution of operations is provided "start" and "stop" whether the service was already started or stopped (previously, the execution of the "herd start SERVICE» resulted in an attempt to start a second instance of the service).

In addition to this, it is also highlighted that parallelization of dependency launch is provided and services launched in the mode of «start-in-the-background«, as well as the accounting of the time of failures and changes in the state of each service. Accumulated statistics are displayed when the "herd status" command is executed.

We can also find that the "herd log" command has been added to display a summary log of events and a list of all changes in the state of the service.

Of the other changes that stand out:

  • Added the "herd graph" command to generate data that allows Graphviz ("herd graph | xdot -") to be used to display a visual graph of dependencies.
  • Color highlighting of herd command output has been implemented.
  • Added new services: “monitoring” to monitor the resource consumption of the process and “repl” to run the REPL (read-evaluate-print cycle) debugging interface.
  • The GOOPS (Guile Object Oriented Programming System) interface has been deprecated.

Finally, for those who are interested in being able to learn more about it, you can consult the details in the following link

How to install GNU Shepherd?

For those interested in being able to try GNU Shepherd, as already mentioned Shepherd is developed in conjunction with the GNU Guix project and is used as the Guix startup system.

Although alsoIt is not possible to install Shepherd on any Linux distribution, so for the case of those who are Arch Linux users just have the AUR repository enabled and type the following command:

yay -S shepherd

For all other distributions installation can be done by compiling the source code and for this it is enough to open a terminal and type in it:

wget https://ftp.gnu.org/gnu/shepherd/shepherd-0.10.0.tar.gz

We extract with:

tar -xvf shepherd/shepherd-0.10.0.tar.gz

We enter the directory with:

cd shepherd-0.10.0

And we proceed to compile with:

./configure --prefix=/some/where
make
make check
make install


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.