vera 1.3

vera is an alternative init daemon supervisor (PID 1) that uses kernel control groups (lightweight containers). Containers allow reliable, foolproof shutdown and termination of started services. Optionally enabling cgroup v2 controllers allows setting various resource limits, like specifying the maximum number of processes, or maximum memory used by each container. vera was developed on Slackware 15.0. It is capable of booting and shutting down a stock installation of Slackware 15.

Tags init admin cgroups2 slackware
License GNU GPLv3
State stable

Recent Releases

1.310 Aug 2024 14:13 minor feature: Fixes a problem with converted inittab dependencies. This fixes erroneous rc.M stops when switching directly between different runlevels. Minor improvements: an improved refreshing logic for showing status of in-progress feedback when starting runlevels. Fixes a spurious "unknown command" after processing a compatibility "init X" command.
1.230 Jul 2024 23:32 minor feature: This release implements an additional "Requires-First" dependency between containers, this helps in implementing the proper order for starting multiple containers. New feature: integration of cgroup v2 controllers, making it possible to enforce various resource limits, like specifying the maximum number of processes, or maximum memory used by each container.
1.121 Jul 2024 16:42 minor feature: New commands: edit and revert a workflow for manually editing unit specification files (or reverting local changes). The changes get validated and checked for correctness before they get installed, preventing New commands: freeze and thaw temporary pause all processes in a service's container.
1.014 Jul 2024 18:12 minor feature: Documentation update. Use cgroup.kill to terminate all processes instead of sending a SIGKILL to each one individually.
0.9428 Apr 2024 14:47 major feature: Heuristically scan rc.d scripts to identify the ones that support a restart or a reload command. Update their containers to enable restarting/reloading. Automatically install a modified logrotate configuration that restarts/reloads the rc.d scripts' containers instead of running "/etc/rc.d/ restart". This fixes the problem with logrotate restarting daemons in cron's container instead of the original one.
0.9312 Apr 2024 11:46 major feature: As a proof of concept, this release adds an extra feature on top of the stock Slackware installation: an optional system/networkmanager-wait-online container for Slackware systems that use NetworkManager. This container runs /usr/bin/nm-online, from the NetworkManager package before starting rc.inet2 services. Other distributions have something similar, this implements it for Slackware.
0.9206 Apr 2024 22:28 major feature: Two new sysvinit interoperability features: 1) the "enable" and "disable" command for containers of /etc/rc.d scripts now maintains the scripts' executable permissions, synchronizing their status with sysvinit's rc.M script (vera now directly controls which rc.d scripts get started from rc.M) 2) switching back to init is no longer needed before updating vera to a future release, added support for simply installing future releases with upgradepkg.
0.9127 Mar 2024 02:03 major feature: Automatically log timestamps when changing runlevels, this includes system startup and shutdown. A log command generates a diagnostic report of how long each container took to start or stop.
0.9009 Mar 2024 22:50 major feature: Each service started from rc.inet2 now gets started in its own individual container. All services that now get started by rc.M are now running in their own individual containers. Reduced file descriptor usage: each container no longer needs to keep an additional open file descriptor for its cgroup.events, just a pair of pipes to capture its processes stdout and stderr that get redirected to syslog. A manual container's start/stop/reload/restart also mirrors the container's stdout and stderr to the terminal console, for the duration of the operation. This emulates running the rc script the "old-fashioned" way, when it's actually running in a container.
0.0201 Mar 2024 01:00 minor feature: Release 0.02 adds the ability to start each rc.M-launched rc service in its own container, instead of using a single container for all services.
0.0123 Feb 2024 13:18 minor feature: Initial github release