New versions of the service manager s6-rc and the s6-linux-init initialization system

The release of the service manager s6-rc 0.5.6.0 has been introduced, designed for managing the launch of initialization scripts and services. It supports tracking the dependency tree and automatically starting or stopping services to achieve a specified state. The s6-rc toolkit can be used in both initialization systems and for organizing the launch of arbitrary services tied to events reflecting changes in system 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 C and is distributed under the ISC license.

The s6-rc service manager includes a set of utilities for starting and stopping long-running processes (daemons) or scripts that terminate immediately. During operation, it ensures parallel execution of non-overlapping services and guarantees a consistent execution sequence of scripts across different launches. All state changes are handled with respect to dependencies, for example, when starting a service, the necessary dependencies for its operation will be automatically started, and when stopping, dependent services will also be halted.

Unlike other service managers, s6-rc supports proactive (in offline mode) construction of a dependency graph for the existing set of services, allowing resource-intensive dependency analysis to be completed separately, rather than during boot or state change. The system is not monolithic and is divided into a series of separate and replaceable modules, each of which, in accordance with Unix philosophy, addresses only a specific task. The s6-rc project adheres to minimalism (it contains nothing superfluous) and consumes minimal resources.

Instead of runlevels, s6-rc offers the concept of bundles, allowing services to be grouped by arbitrary criteria and tasks being addressed. To enhance efficiency, a compiled dependency database is created by the s6-rc-compile utility based on the content of directories with files for launching/stopping services. The utilities s6-rc-db and s6-rc-update are provided for parsing and manipulating the database.

New versions of related packages complementing s6-rc have been created simultaneously:

  • s6 2.13.2.0 β€” utilities for tracking and managing processes (similar to daemontools and runit). It supports features like restarting processes after a crash, activating a service upon network port access, event logging (replacing syslogd), and controlled granting of additional privileges (similar to sudo).
  • s6-linux-init 1.1.3.0 β€” implementation of the init process for operating systems based on the Linux kernel, used to create initialization systems that utilize s6 and s6-rc packages for service and script management.
  • s6-networking 2.7.1.0 β€” a set of utilities for creating network services, similar to ucspi.
  • s6-frontend β€” a wrapper to recreate the functionality of daemontools and runit on top of s6.
  • s6-portable-utils 2.3.1.0 β€” a set of standard Unix utilities such as cut, chmod, ls, sort, and grep, optimized for minimal resource consumption and provided under the ISC license.
  • s6-linux-utils 2.6.3.0 β€” a set of Linux-specific utilities, such as chroot, freeramdisk, logwatch, mount, and swapon.
  • mdevd 0.1.7.0 β€” event manager (similar to udevd), designed for handling hotplugging of devices. mdevd is compatible with mdev from Busybox configuration.
  • bcnm 0.0.2.0 β€” a network configurator with capabilities for client-side Wi-Fi setup.
  • execline 2.9.7.0 β€” a scripting language.
  • skalibs 2.14.4.0 β€” a library for creating secure system applications in C.
  • s6-dns 2.4.1.0 β€” a set of client libraries and utilities that replace standard DNS utilities from BIND and djbdns.
  • dnsfunnel 0.0.3.0 β€” redirects local DNS queries to an external server (DNS forwarder).
  • shibari 0.0.2.0 β€” a simple DNS server.
  • tipidee 0.0.6.0 β€” an HTTP server supporting HTTP/1.1.

New versions have added pkg-config support to all packages. The skalibs library implements input/output function variants that can be limited by timeout. In mdevd, the '-I' option for specifying the netlink group name for receiving requests has been added, with the default buffer size increased to 1 MB. The tipideed now allows for streaming the output of CGI scripts, with added support for PUT, DELETE, and PATCH methods, and includes an autochunk directive for chunked encoding of transmitted data.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers πŸ”₯ Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster