Recent Releases

3.0-rc209 Dec 2016 07:25 minor feature: Add support for status/show service by name:id . Enforce terse mode after boot, if verbose mode is disabled. Reenable verbose mode at reboot, if disabled at boot. Update section mentioning BusyBox getty. Update deging documentation. Allow deto override terse mode. Revert confusing change in service state introduced in v2.3. As of v2.4 services are listed as "halted" and "stopped", when they have been halted due to a runlevel changed or stopped by the user, respectively. system freeze at reconfiguration. Changed services that all support SIGHUP caused a freeze due to Finit waiting for them to stop. Make sure to start and/or SIGHUP services after reconfiguration when there was no services to stop.
3.0-rc114 Sep 2016 06:25 minor feature: Add support for status/show service by name:id . Enforce terse mode after boot, if verbose mode is disabled. Reenable verbose mode at reboot, if disabled at boot. Update section mentioning BusyBox getty. Update deging documentation. Allow deto override terse mode. Revert confusing change in service state introduced in v2.3. As of v2.4 services are listed as "halted" and "stopped", when they have been halted due to a runlevel changed or stopped by the user, respectively. system freeze at reconfiguration. Changed services that all support SIGHUP caused a freeze due to Finit waiting for them to stop. Make sure to start and/or SIGHUP services after reconfiguration when there was no services to stop.
2.406 Dec 2015 07:45 minor feature: Add support for status/show service by name:id . Enforce terse mode after boot, if verbose mode is disabled. Reenable verbose mode at reboot, if disabled at boot. Update section mentioning BusyBox getty. Update deging documentation. Allow deto override terse mode. Revert confusing change in service state introduced in v2.3. As of v2.4 services are listed as "halted" and "stopped", when they have been halted due to a runlevel changed or stopped by the user, respectively. system freeze at reconfiguration. Changed services that all support SIGHUP caused a freeze due to Finit waiting for them to stop. Make sure to start and/or SIGHUP services after reconfiguration when there was no services to stop.
2.302 Dec 2015 01:05 minor feature: Add support for stop/start/restart/reload service by name:id . Refactor service status listed in initctl show, show actual status. Remove bootstrap-only tasks/services when leaving runlevel 'S'. Reference counting with already stopped and removed services When the user performs initctl reload to change system configuration. Revert semantic change in behavior of initctl restart: users expect Service to be stopped/started, not reloaded with SIGHUP even if the Service supports it. NULL pointer dereference causing kernel panic when user calls Initctl reload after change of system configuration. Column alignment in output of initctl show for services not in Current runlevel.
2.227 Nov 2015 16:45 minor feature: Upgrade to libuEv v1.2.4, to handle static builds. Upgrade to libite (LITE) v1.2.0, to handle static builds. Clarify how to select different plugins with the configure script. Improve urandom plugin for embedded systems w/o random seed. Add --deflag to initctl . The runlevels listed for services in initctl show now hightlight the active runlevel. Clarify in the README and in initctl help that the GW event to listen for in service declarations is GW:UP . Build for configure --disable-inetd . Improved support for static Finit builds. Misc. to silence warnings when building a static Finit. Default to register services as SIGHUP'able, regression in v2.0. Call HOOK_SVC_RECONF only when all processes have been stopped. On reload/reconf we must wait for all services to stop first. Only trigger on events that matches the service's specification, by Tobias Waldekranz.
2.117 Oct 2015 18:45 minor feature: Add hook point for fstab mount failure. Set hostname on dynamic reload. Upgrade to libite v1.1.1 . Service callback coredump checks and simplify callback exit. Do not use -Os use -O2 as default optimization level. Many cross Compiler toolchains are known to have problems with -Os . Do not allow build VERSION to be overloaded by an environment variable. Too small MAX arguments and too few argments in svc_t for Reading currently running services with initctl show . Unblock blocked signals after forking off a child.
2.021 Sep 2015 06:05 minor feature: The most notable change is the support for multiple instances. A must Have when running multiple DHCP clients, OpenVPN tunnels, or anything That means using the same command only with different arguments. Now Simply add a :ID after the service keyword, where ID is a unique Instance number for that service. Service #1 2345 /sbin/httpd -f -h /http -p 80 -- Web server. Service #2 2345 /sbin/httpd -f -h /http -p 8080 -- Old web server . Another noteworthy new feature is support for starting/stopping. Services on Netlink events: Service :1 2345 /sbin/dropbear -R -F -p 22 -- SSH daemon. Here the first instance :1 of the SSH daemon is declared to run in. Runlevels 2-5, but only if eth0 IFUP:eth0 is up and a gateway GW is set. When the configuration changes, a new gateway is set, or if Somehow a new IFUP event for eth0 is received, then dropbear is not SIGHUP'ed, but instead stop-started . The latter trick applies to all services, even those that do not define any events. . Support for reloading *.conf files in /etc/finit.d/ on SIGHUP. All task, service and run statements can be used in these.conf Files. Use the telinit q command, initctl reload or simply send SIGHUP to PID 1 to reload them. Finit automatically does reload of These *.conf files when changing runlevel. Support for a modern initctl tool which can stop/start/reload and. List status of all system services. Also, the old client tool used to change runlevel is now also available as a symlink: telinit. Initctl -v JOB . . Add concept of "jobs". This is a unique identifier, composed of a. Service and instance number, SVC:ID Initctl JOB. . Support for deny filters in inetd services. Inetd service/proto @iface,!iface... . Internal services on a custom port must use the internal.service. Syntax so Finit can properly bind the inetd service to the correct Plugin. Here follows a few examples: Inetd time/udp wait 2345 internal -- UNI
1.1205 Mar 2015 03:25 minor feature: Add support for built-in inetd super server -- launch services on demand. Supports filtering per interface and custom Inet ports. Upgrade to libuEv v1.1.0 to better handle error conditions. Allow mixed case config directives in finit.conf Add support for RFC 868 (rdate) time plugin, start as inetd service. Load plugins before parsing finit.conf, this makes it possible to extend finit even with configuration commands. E.g., the time.so plugin must be loaded for the inetd time/tcp internal service to be accepted when parsing finit.conf. Slight change in TTY fallback behavior, if no TTY is listed in the system finit.conf first inspect the console setting and only if that too is unset fall back to /bin/sh When falling back to the console TTY or /bin/sh, finit now marks this fallback as console. Should improve usability in some use cases. . Revert "Use vfork() instead of fork() before exec()" from v1.11. It turned out to not work so well after all. For instance, launching TTYs in a background process completely blocked inetd services from even starting up listening sockets ... proper fork seems to work fine though. This is the casue for yanking the 1.11 release, below. Trap segfaults caused by external plugins/callbacks in a sub-process. This prevents a single programming mistake in by a 3rd party developer from taking down the entire system. Fix Coverity CID 56281: dlopen() resource leak by storing the pointer. For the time being we do not support unloading plugins. Set hostname early, so bootstrap processes like syslog can use it. Only restart lost daemons when recovering from a SIGSTOP/norespawn.
1.1124 Jan 2015 16:10 major feature: Rebuilt event handling using libuEv.