Release of the GNU Shepherd 0.6 init system

Submitted by service manager GNU Shepherd 0.6 (ex dmd), which is being developed by the developers of the GuixSD GNU/Linux distribution as a dependency-aware alternative to the SysV-init init system. The Shepherd control daemon and utilities are written in the Guile language (one of the implementations of the Scheme language), which is also used to define settings and parameters for starting services. Shepherd is already used in the GuixSD GNU/Linux distribution and is also intended for use in GNU/Hurd, but can run on any POSIX-compliant OS for which the Guile language is available.

Shepherd can be used both as the main init system (init with PID 1), and in a separate form to manage background processes of individual users (for example, to run tor, privoxy, mcron, etc.) with execution with the rights of these users. Shepherd does the work of starting and stopping services by taking into account the relationship between services, dynamically determining and starting the services on which the selected service depends. Shepherd also supports conflict detection between services and prevents them from running concurrently.

Main innovations:

  • Added service mode one shot,
    in which the service is marked as stopped immediately after a successful start, which may be required to start one-time work before other services, for example, to perform cleaning or initialization;

  • Ensured deletion of files with sockets after completion of work
    shepherd;

  • The β€œherd stop” command no longer displays an error when executed on an already stopped service;
  • The herd utility now returns a non-zero return code if the task launch fails;
  • When running in a container, load-related errors are ignored.

Source: opennet.ru

Add a comment