System manager GNU Shepherd 1.0.0 (former DMD), presented the capabilities of combining the initialization system and tools for managing system services. After 21 years of development, the assignment of the number 1.0 marked the readiness of the project to meet the requirements for modern functionality in initialization systems and service managers.
Developed by the GNU GUIX System distribution developers, Shepherd serves as an alternative to the Sysv-In-In-In-Supporting Air Initialization System. Written in Guile, the managing demon and utility are utilized for determining service launch settings and parameters. Shepherd is already integrated into the GNU GUIX System distribution and is intended for use in GNU/Hurd, as well as any Posix-compatible OS where Guile is available.
Shepherd handles service launching and stopping, considers service relationships, dynamically defines and launches services dependent on others, and supports conflict resolution to prevent simultaneous service implementation. It is suitable as the main initialization system or for managing background processes of individual users with user data rights.
The main innovations in GNU Shepherd 1.0.0 include:
- Added Service support, starting commands periodically on a specified schedule.
- The “Herd Status Service” command provides high-level information about services, including PID, network addresses for receiving requests, recent log messages, user actions, and pending replacements after service termination.
- The “Herd Status Root” command now directly displays Shepherd process information.
- On the Linux platform, the ability to restart using the Kexec mechanism (“Reboot –kexec”) allows for kernel replacement without physical reboot.
- Introduced the “system-log” service as a replacement for traditional Syslogd.
- Added the “timer” service.