The service manager s6-rc 0.5.6.0 has been presented, designed to control the start of initialization scripts and services. This service manager monitors dependencies and supports automatic launch or completion of services to achieve the specified state. It can be used in initialization systems and to organize the launch of arbitrary services based on events reflecting a change in the system’s state. The system supports initialization scripts compatible with SYSV-Init, and can import dependency information from SYSV-RC or OpenRC. The code is written in the si language and is distributed under the isc license. More information can be found here.
The s6-rc service manager includes utilities for launching and stopping long-functioning processes (daemons) or immediately completed initialization scripts. It ensures parallel launch of non-intersecting services and guarantees the sequence of scripts during different launches. Changes in the state are processed taking dependencies into account, automatically launching necessary services when a service is launched and stopping dependent services during shutdown.
Unlike other service managers, s6-rc supports proactive construction of dependencies in Offline mode, allowing resource-intensive dependency analysis separately from system load or state changes. The system consists of individual and replaceable modules, each dedicated to solving a specific problem. The s6-rc project follows a minimalist philosophy and consumes minimal resources.
Instead of launching levels, s6-rc introduces the concept of sets (Bundles) to group services based on characteristics or tasks. Compiled dependencies are used for efficiency, created by the s6-rc-compile utility from directories containing service launch/stop files. Additional utilities for database analysis and manipulation are also available.
New versions of related packages have been released:
- s6 2.13.2.0 – utilities for monitoring and managing processes, offering features like process restart after failure, network port activation, event journaling, and controlled privilege provision.
- s6-linux-init 1.1.3.0 – implementation of Init systems for Linux-based operating systems, using S6 and S6-RC packages for initialization, services, and script management.