Finit is a small SysV init replacement with process supervision similar to that of daemontools and runit. Its focus is on small and embedded GNU/Linux systems, although it is fully functional on standard server and desktop installations. Finit is fast because it starts services in parallel; it then supervises and automatically restarts them if they fail. This can be extended upon with custom callbacks for all services, hooks into the boot process, or plugins to extend the functionality and adapt Finit to your needs. Finit is not only fast, it’s arguably one of the easiest to get started with. A complete system can be booted with one simple configuration file.
|Tags||Unix Boot Init Init Daemon|
|Operating Systems||Linux POSIX Unix BSD (untested)|
Let’s start off with tasks. Tasks are one-shot commands, with a syntax like service directives, but are not monitored and respawned like services. Tasks are started in parallel, just like services. For some cases, like the system bootstrap phase, some tasks may need to be executed in sequence, and for that purpose there also exists a run command. Run commands are executed in the order listed in finit.conf and will run until completion before continuing with the next task or service. Multiple TTYs is another neat feature. Similar to services many TTYs can be started and automatically be respawned when a user logs out. For embedded targets wanting to save CPU cycles usually one TTY is the system console. Use the console command to point to a defined TTY to activate “Press any key to activate this console.” Finally, runlevels! This is the key feature in this release of Finit. Adding the flexibility from SysV init, without the complexity. This is one of the key points of Finit – it should be simple! For more info, see http://troglobit.com/blog/2013/06/08/finit-v1-dot-8/
Release Notes: This is a minor bug fix release, but with added support for include directives in .conf files.
Release Notes: This release adds support for multiple runlevels, with a dedicated bootstrap level, one-shot tasks (in parallel or sequence), and multiple TTYs.
Release Notes: This is a bugfix release. It cleans up the recorded PID of a service when it is lost (needed by callbacks). It fixes a segfault when parsing the new runparts directive in finit.conf (tried to free a static string).
Release Notes: This release supports a new "runparts DIR" in finit.conf, prevents endless restarting of non-existing services in finit.conf, and supports sysvinit-style start-stop scripts in /etc/finit.d/. As a security fix, it doesn't start services which don't start with a slash.
Release Notes: The last piece of the big puzzle, a plugin resolver, has been added, capable of sysvinit-style dependency handling.