After about three years of development the publication was released of the launch of the new version Finit 4.0 initialization system (Fast init), which is developed as a simple alternative to SysV init and systemd.
The projector is based on the reverse engineering of the fastinit boot system used in the Linux firmware of the EeePC netbooks and it stands out for its very fast boot process. The system is primarily intended to provide integrated and compact boot systems, but can also be used for common desktop and server environments.
Finished supports runlevels in SysV startup style, monitoring the status of background processes (automatically restarting a service in case of failure), running single controllers, starting services taking into account arbitrary dependencies and conditions, attaching additional controllers to start before or after the service runs.
To extend the functionality and suit your needs, plugins can be used, for which a system of hooks is provided, which allow attaching a handler to the different stages of loading and executing services, as well as providing a link to external events.
The use of standard scripts to start services created for SysV init is supported, as well as rc Scripts .local, files with environment variables and network settings as in Debian and BusyBox. Configurations can be defined in a single configuration file or spread across multiple files.
Management is done through the standard initctl and run-parts toolkit, which allows you to enable and disable services in relation to runlevels, as well as selectively start some services.
Finished also includes a built-in getty implementation (control terminal and user logins), watchdog for health monitoring and a toggle mode by mistake with built-in sulogin to run a sandbox shell.
Main new features of Finit 4.0
Among the changes added in the Finit 4.0 release (version 3.2 was dropped due to changes that would break backward compatibility). The separate reboot utility has been replaced by a symbolic link to initctl, similar to stop, shutdown, shutdown and suspend utilities.
The added plugin for automatic loading of kernel modules for devices connected in runtime, in addition to added the ability to record operations that affect security, like change runlevel, start and stop services, service failures.
It is also highlighted that added support for automatic restart of services after changing the configuration, which eliminates the manual execution of the "initctl reload" command.
The operation of the commands «inictl cond set | clear COND »to link actions to multiple events. To identify the services, the syntax is used instead of linking to routes .
Of the other changes that stand out:
- Added plugin to handle /etc/modules-load.d/.
- Implemented indication of the progress of operations.
- The built-in implementation of the inetd server has been removed, if necessary, on which you can install xinetd.
- Added support for cgroups v2 to run services on separate cgroups.
- Added crash recovery mode with custom login.
- Added support for starting / stopping scripts from SysV init.
- Pre: script and post: script handlers have been added that allow you to specify actions to take before or after starting the service.
- Added support for env: file with environment variables.
- Added the ability to track arbitrary PID files.
- Added the ability to start tasks and services using relative paths.
- Added "-b" option to initctl to perform actions in batch mode.
- Improved support for / etc / network / interfaces.
Finally, if you are interested in knowing more about it, you can check the details In the following link.
For those of you interested in being able to test this initialization system, you should know that sample deployment scripts have been prepared for Void Linux, Alpine Linux, and Debian.