GNU developers have released a new version of their init system called GNU Shepherd 0.10. This version is a new alternative to SYSV-Init that supports dependencies. It is being developed by the same developers who worked on the GNU GUIX System distribution.
Shepherd is written in Guile, which is one of the Scheme languages used for determining service launch settings and parameters. The new init system can be used in any Posix-compatible OS that supports Guile, and is intended for use in GNU/Hurd.
Shepherd enables service management and support for defining conflicts and dependencies between services. The project can be used as the main initialization system (Init CID 1) or separately for managing the background processes of individual users like launching Tor, Privoxy, Mcron, and more.
The new version of Shepherd comes with added features such as new intermediate states for services, parallelization of launch services, and dependencies launched in the “Start-in-the-Background” mode. Also, the time of failures and changes for each service is implemented. The new release also features the “Herd Graph” command for generating data that allows for a visual graph of dependencies using Graphviz.
The GNU Shepherd team has also added new services such as “Monitoring” and a “Repl” process for launching the REPL debt interface. The outdated Goops interface has been announced as deprecated.
Users of the GUIX System distribution can already benefit from using GNU Shepherd, but other users can install it in their OS to take advantage of the new service management features and improvements accompanying the new release.