Finit 4.5

Finit is a SysV init replacement that starts services in parallel for a fast init. It comes with process supervision similar to that of daemontools and runit. Although the focus is on small and embedded GNU/Linux systems, it's fully functional on standard server and desktop installations. Cookies included.

Tags init monitoring linux c
License MITL
State stable

Recent Releases

4.531 Oct 2023 03:16 minor feature: Disable Bash completion in 'make distcheck' We cannot rely on the auto-detection of Bash completion dir during 'make. distcheck' because autotools does not use DESTDIR, only --prefor the. install check, and pkg-config returns a system path. Also, show detected path in configure summary for de. Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.5-rc508 Oct 2023 09:25 minor feature: Bump version for final candidate, v4.5-rc5 Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.5-rc404 Oct 2023 03:25 minor feature: Update ChangeLog and bump version for v4.5-rc4 Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.5-rc325 Sep 2023 09:45 minor feature: Update ChangeLog and bump for v4.5-rc3 No more changes are expected after -rc3. Will be used for testing in. Inand br2-ext-finit before the final v4.5 GA. Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.5-rc218 Sep 2023 14:05 minor feature: Update ChangeLog and bump version for v4.5-rc2 Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.5-rc114 Sep 2023 11:05 minor feature: Update ChangeLog and bump version for v4.5-rc1 Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.416 May 2023 03:15 minor feature: Update ChangeLog and bump version for v4.4 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.4-rc108 May 2023 03:15 minor feature: github: defailing tests in release build Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.316 May 2022 03:15 minor feature: Update ChangeLog and bump version for v4.3 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.3-rc210 May 2022 03:16 minor feature: Update ChangeLog and bump version for v4.3-rc2 Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.217 Jan 2022 06:45 minor feature: Update changelog and bump version for v4.2 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.107 Jun 2021 06:45 minor feature: Change behavior on SIGUSR1 to be compatible with sysvinit and systemd. Previously SIGUSR1 caused Finit to halt, like BusyBox init. This had "interesting" side effects on Debian systems when coexisting with sysvinit (upgrading/reinstalling causes scripts to kill -USR1 1). Change how contrib/debian/install.sh sets up a Grub boot entry for finit. We now modify the SUPPORTED_INITS variable in 10_linux. Disable default kernel ctrl-alt-delete handler and let Finit instead catch SIGINT from kernel to be able to perform a proper reboot. There is no default command for this, you need to set up a task that triggers on to initctl reboot. Added keventd to provide condition to Finit. keventd is currently only responsible for monitoring /sys/class/power_supply for changes to active AC mains power online status. Enable keventd with configure --with-keventd. For handling power fail events a process may send SIGPWR to PID 1. Finit no longer redirects this to SIGUSR1 (poweroff). There is no default command for this, you need to set up a task that triggers on to initctl poweroff. Built-in Finit getty is now a standalone program. Default termios for TTYs now enable IUTF8 on input. If /bin/login is not found, Finit now tries sulogin before it falls back to an unauthenticated /bin/sh. Dropped (broken) support for multiple consoles. Finit now follows the default console selected by the kernel, /dev/console. Dropped signal handlers for SIGSTOP/TSTP and SIGCONT. Added support for n, in addition to r, in "Please press Enter" prompt before starting getty. Finit no longer parses /proc/cmdline for its options. Instead all options are by default now read from argv , like a normal program, this is also what the kernel does by default. Please note, this may not work if your systems boots with an initramfs (ymmv), for such cases, see configure --enable-kernel-cmdline. The following plugins are now possible to disable (for containers): rtc.so, urandom.so, you may also want to disable
4.1-rc202 Jun 2021 07:05 minor feature: The stand-alone reboot tool has been replaced with a symlink to initctl, like its siblings: halt, shutdown, poweroff, and suspend. Calling reboot C:o now defaults to the corresponding initctl cmd with a fallback to sending signals as per traditional SysV init. The -f (force) flag remains, where reboot(2) is called directly. Introducing Finit progress 𝓜𝓸𝓭𝓮𝓻𝓷. The inictl cond set clear COND have changed completely. Constrained to a flat namespace and automatically activated by a new usr.so plugin that checks services for usr condition changes. Removed built-in inetd super server. If you need this functionality, use an external inetd, like xinetd, instead. A pull request for a stand-alone inetd, like watchdogd and getty, is most welcome!. Incompatible configure script changes, i.e., no guessing --preand other paths. Also, many options have been changed, renamed, or flipped defaults, or even dropped altogether. There are examples in the documentation and the contrib/ section. Service conditions change from the non-obvious to . Not only does this give simpler internal semantics, it hopefully also makes it clear that one service's pid:!foo pidfile is another service's condition. Initial support for cgroups v2: services runs in a cgroup named after their respective *.conf file top-level groups are; init, user, and system all top-level groups can be configured from finit *.conf files each service can tweak the cgroup settings Use initctl top ps cgroup commands to inspect runtime state https://twitter.com/b0rk/status/1214341831049252870?s=20 . services runs in a cgroup named after their respective *.conf file. top-level groups are; init, user, and system. all top-level groups can be configured from finit *.conf files. each service can tweak the cgroup settings. Use initctl top ps cgroup commands to inspect runtime state. https://twitter.com/b0rk/status/1214341831049252870?s=20. Major refactor of Finit's main() function to be able to start t
4.1-rc104 May 2021 06:25 minor feature: The stand-alone reboot tool has been replaced with a symlink to initctl, like its siblings: halt, shutdown, poweroff, and suspend. Calling reboot C:o now defaults to the corresponding initctl cmd with a fallback to sending signals as per traditional SysV init. The -f (force) flag remains, where reboot(2) is called directly. Introducing Finit progress 𝓜𝓸𝓭𝓮𝓻𝓷. The inictl cond set clear COND have changed completely. Constrained to a flat namespace and automatically activated by a new usr.so plugin that checks services for usr condition changes. Removed built-in inetd super server. If you need this functionality, use an external inetd, like xinetd, instead. A pull request for a stand-alone inetd, like watchdogd and getty, is most welcome!. Incompatible configure script changes, i.e., no guessing --preand other paths. Also, many options have been changed, renamed, or flipped defaults, or even dropped altogether. There are examples in the documentation and the contrib/ section. Service conditions change from the non-obvious to . Not only does this give simpler internal semantics, it hopefully also makes it clear that one service's pid:!foo pidfile is another service's condition. Initial support for cgroups v2: services runs in a cgroup named after their respective *.conf file top-level groups are; init, user, and system all top-level groups can be configured from finit *.conf files each service can tweak the cgroup settings Use initctl top ps cgroup commands to inspect runtime state https://twitter.com/b0rk/status/1214341831049252870?s=20 . services runs in a cgroup named after their respective *.conf file. top-level groups are; init, user, and system. all top-level groups can be configured from finit *.conf files. each service can tweak the cgroup settings. Use initctl top ps cgroup commands to inspect runtime state. https://twitter.com/b0rk/status/1214341831049252870?s=20. Major refactor of Finit's main() function to be able to start t
4.026 Apr 2021 09:45 minor feature: The stand-alone reboot tool has been replaced with a symlink to initctl, like its siblings: halt, shutdown, poweroff, and suspend. Calling reboot C:o now defaults to the corresponding initctl cmd with a fallback to sending signals as per traditional SysV init. The -f (force) flag remains, where reboot(2) is called directly. Introducing Finit progress 𝓜𝓸𝓭𝓮𝓻𝓷. The inictl cond set clear COND have changed completely. Constrained to a flat namespace and automatically activated by a new usr.so plugin that checks services for usr condition changes. Removed built-in inetd super server. If you need this functionality, use an external inetd, like xinetd, instead. A pull request for a stand-alone inetd, like watchdogd and getty, is most welcome!. Incompatible configure script changes, i.e., no guessing --preand other paths. Also, many options have been changed, renamed, or flipped defaults, or even dropped altogether. There are examples in the documentation and the contrib/ section. Service conditions change from the non-obvious to . Not only does this give simpler internal semantics, it hopefully also makes it clear that one service's pid:!foo pidfile is another service's condition. Initial support for cgroups v2: services runs in a cgroup named after their respective *.conf file top-level groups are; init, user, and system all top-level groups can be configured from finit *.conf files each service can tweak the cgroup settings Use initctl top ps cgroup commands to inspect runtime state https://twitter.com/b0rk/status/1214341831049252870?s=20 . services runs in a cgroup named after their respective *.conf file. top-level groups are; init, user, and system. all top-level groups can be configured from finit *.conf files. each service can tweak the cgroup settings. Use initctl top ps cgroup commands to inspect runtime state. https://twitter.com/b0rk/status/1214341831049252870?s=20. Major refactor of Finit's main() function to be able to start t
4.0-rc420 Apr 2021 03:17 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for rlimit per service/run/task/inetd/tty. Support for setting hard and soft rlimit for a resource at once. Support for auto-detecting serial console using Linux SysFS, the new tty @console eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0, /dev/ttyAMA0, etc. Add TTY nologin option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Support for calling run/tasks on Finit internal HOOK points. Removed support for long-since deprecated console DEV setting. Cosmetic change to login, pressing enter at the Press enter to... prompt will now replace that line with the login text. Calling initctl without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs. Cosmetic change to boot messages, removed Loading plugins..., start of inetd services, and Loading configuration.... No end user knows what those plugins and configurations are, i.e. internal state+config. Change kernel WDT timeout (3 -- 30 sec) for built-in watchdog daemon. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. Handle /etc/ OverlayFS, reload /etc/finit.d/*.conf after mount -a. initctl: Add support for printing previous runlevel. initctl: Support short forms of all commands. initctl: Support for initctl touch to be used with reload. initctl: Impr
4.0-rc320 Mar 2021 07:05 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for rlimit per service/run/task/inetd/tty. Support for setting hard and soft rlimit for a resource at once. Support for auto-detecting serial console using Linux SysFS, the new tty @console eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0, /dev/ttyAMA0, etc. Add TTY nologin option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Support for calling run/tasks on Finit internal HOOK points. Removed support for long-since deprecated console DEV setting. Cosmetic change to login, pressing enter at the Press enter to... prompt will now replace that line with the login text. Calling initctl without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs. Cosmetic change to boot messages, removed Loading plugins..., start of inetd services, and Loading configuration.... No end user knows what those plugins and configurations are, i.e. internal state+config. Change kernel WDT timeout (3 -- 30 sec) for built-in watchdog daemon. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. Handle /etc/ OverlayFS, reload /etc/finit.d/*.conf after mount -a. initctl: Add support for printing previous runlevel. initctl: Support short forms of all commands. initctl: Support for initctl touch to be used with reload. initctl: Impr
4.0-rc208 Mar 2021 09:45 minor feature: Bump version for Finit v4.0-rc2 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
4.0-rc101 Mar 2021 14:45 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for rlimit per service/run/task/inetd/tty. Support for setting hard and soft rlimit for a resource at once. Support for auto-detecting serial console using Linux SysFS, the new tty @console eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0, /dev/ttyAMA0, etc. Add TTY nologin option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Support for calling run/tasks on Finit internal HOOK points. Removed support for long-since deprecated console DEV setting. Cosmetic change to login, pressing enter at the Press enter to... prompt will now replace that line with the login text. Calling initctl without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs. Cosmetic change to boot messages, removed Loading plugins..., start of inetd services, and Loading configuration.... No end user knows what those plugins and configurations are, i.e. internal state+config. Change kernel WDT timeout (3 -- 30 sec) for built-in watchdog daemon. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. Handle /etc/ OverlayFS, reload /etc/finit.d/*.conf after mount -a. initctl: Add support for printing previous runlevel. initctl: Support short forms of all commands. initctl: Support for initctl touch to be used with reload. initctl: Impr
3.2-rc324 Apr 2020 06:45 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for rlimit per service/run/task/inetd/tty. Support for setting hard and soft rlimit for a resource at once. Support for auto-detecting serial console using Linux SysFS, the new tty @console eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0, /dev/ttyAMA0, etc. Add TTY nologin option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Support for calling run/tasks on Finit internal HOOK points. Removed support for long-since deprecated console DEV setting. Cosmetic change to login, pressing enter at the Press enter to... prompt will now replace that line with the login text. Calling initctl without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs. Cosmetic change to boot messages, removed Loading plugins..., start of inetd services, and Loading configuration.... No end user knows what those plugins and configurations are, i.e. internal state+config. Change kernel WDT timeout (3 -- 30 sec) for built-in watchdog daemon. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. Handle /etc/ OverlayFS, reload /etc/finit.d/*.conf after mount -a. initctl: Add support for printing previous runlevel. initctl: Support short forms of all commands. initctl: Support for initctl touch to be used with reload. initctl: Impr
3.2-rc212 Apr 2020 15:05 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for rlimit per service/run/task/inetd/tty. Support for setting hard and soft rlimit for a resource at once. Support for auto-detecting serial console using Linux SysFS, the new tty @console eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0, /dev/ttyAMA0, etc. Add TTY nologin option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Support for calling run/tasks on Finit internal HOOK points. Removed support for long-since deprecated console DEV setting. Cosmetic change to login, pressing enter at the Press enter to... prompt will now replace that line with the login text. Calling initctl without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs. Cosmetic change to boot messages, removed Loading plugins..., start of inetd services, and Loading configuration.... No end user knows what those plugins and configurations are, i.e. internal state+config. Change kernel WDT timeout (3 -- 30 sec) for built-in watchdog daemon. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. Handle /etc/ OverlayFS, reload /etc/finit.d/*.conf after mount -a. initctl: Add support for printing previous runlevel. initctl: Support short forms of all commands. initctl: Support for initctl touch to be used with reload. initctl: Impr
3.2-rc117 Oct 2018 03:45 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for rlimit per service/run/task/inetd/tty. Support for setting hard and soft rlimit for a resource at once. Support for auto-detecting serial console using Linux SysFS, the new tty @console eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0, /dev/ttyAMA0, etc. Add TTY nologin option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Support for calling run/tasks on Finit internal HOOK points. Removed support for long-since deprecated console DEV setting. Cosmetic change to login, pressing enter at the Press enter to... prompt will now replace that line with the login text. Calling initctl without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs. Cosmetic change to boot messages, removed Loading plugins..., start of inetd services, and Loading configuration.... No end user knows what those plugins and configurations are, i.e. internal state+config. Change kernel WDT timeout (3 -- 30 sec) for built-in watchdog daemon. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. Handle /etc/ OverlayFS, reload /etc/finit.d/*.conf after mount -a. initctl: Add support for printing previous runlevel. initctl: Support short forms of all commands. initctl: Support for initctl touch to be used with reload. initctl: Impr
3.124 Jan 2018 13:05 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for rlimit per service/run/task/inetd/tty. Support for setting hard and soft rlimit for a resource at once. Support for auto-detecting serial console using Linux SysFS, the new tty @console eliminates the need to keep track of different console devices across embedded platforms: /dev/ttyS0, /dev/ttyAMA0, etc. Add TTY nologin option. Bypasses login and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Support for calling run/tasks on Finit internal HOOK points. Removed support for long-since deprecated console DEV setting. Cosmetic change to login, pressing enter at the Press enter to... prompt will now replace that line with the login text. Calling initctl without any arguments or options now defaults to show status of all enabled services, and run/task/inetd jobs. Cosmetic change to boot messages, removed Loading plugins..., start of inetd services, and Loading configuration.... No end user knows what those plugins and configurations are, i.e. internal state+config. Change kernel WDT timeout (3 -- 30 sec) for built-in watchdog daemon. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. Handle /etc/ OverlayFS, reload /etc/finit.d/*.conf after mount -a. initctl: Add support for printing previous runlevel. initctl: Support short forms of all commands. initctl: Support for initctl touch to be used with reload. initctl: Impr
3.1-rc216 Jan 2018 06:45 minor feature: Support for more kernel command line settings: splash, enable boot progress de, like --debut also enable kernel desingle, single user mode (no network) rescue, new rescue mode . splash, enable boot progress. de, like --debut also enable kernel de. single, single user mode (no network). rescue, new rescue mode. Support for IFF_RUNNING to netlink plugin = net/IFNAME/running. Support for restarting initctl API socket on SIGHUP. Greatly updated initctl status command. Support for setting hard and soft rlimit for a resource at once. Support for the special deoption nologin to tty configurations, skips the login prompt and skips immediately to a root shell. Useful during board bringup, in developer builds, etc. Be careful though. Advise watchdog dawmon on shutdown and reboot using SIGPWR and then SIGTERM. It is recommended the daemon start a timer on the first signal, in case the shutdown process somehow hangs. New configure script option --enable-redirect to automatically redirect stdout and stderr of all applications to /dev/null. New pid sub-option to services when a service does not create a PID file, or when the PID file has another name.. New log sub-option to service/run/task to selectively redirect stdout and stderr using the new tool logit to either syslog or a logfile.. Do not attempt to load kernel modules more than once at bootstrap. Remove reboot symlinks properly on uninstall.
3.1-rc125 Dec 2017 00:25 minor feature: Added basic code of conduct covenant to project . Added contribution guidelines document. . Removed finit.conf option check DEV, replaced entirely by automated call to fsck for each device listed in /etc/fstab. . Removed deprecated and confusing startx and user settings. It is strongly recommended to instead use xdm/gdb/lightdm etc. . Add support for initctl log , shows last 10 lines from syslog. . Add initctl cond dump for deging conditions. . Ensure plugins always have a default name, file name. . Reorganization, move all source files to a src/ sub-directory. . Add support for initctl , much needed by distributions. See doc/distro.md for details. . Remove UNUSED() macro, mentioned here because it may have been used by external plugin developers. Set -Wno-unused-parameter instead. . New table headings in initctl, using top style inverted text. . Allow initctl show to use full screen width for service descriptions. . New HOOK_BANNER for plugins to override the default banner(). . Allow loading TTYs from /etc/finit.d. . Improvements to built-in getty, ignore signals like SIGINT, SIGHUP, support Ctrl-U to erase to beginning of line. . Add TTY nowait and noclear options. . Allow using both built-in getty and external getty: tty 12345 /dev/ttyAMA0 115200 noclear vt220 tty 12345 /sbin/getty -L 115200 /dev/ttyAMA0 vt100 tty 12345 /sbin/agetty -L ttyAMA0 115200 vt100 nowait. . Silent boot is now the default, use --enable-progress to get the old. Finit style process progress. I.e., --enable-silent is no more . Support for configure --enable-emergency-shell, de-only mode. . Support for a fallback shell on console if none of the configured TTYs can be started, configure --enable-fallback-shell. . All demessages to console when Finit --deis enabled. . Prevent login, by touching /etc/nologin, during runlevel changes. . A more orderly shutdown. On reboot/halt/poweroff Finit now properly goes to runlev
3.020 Oct 2017 06:05 minor feature: Added basic code of conduct covenant to project . Added contribution guidelines document. . Removed finit.conf option check DEV, replaced entirely by automated call to fsck for each device listed in /etc/fstab. . Removed deprecated and confusing startx and user settings. It is strongly recommended to instead use xdm/gdb/lightdm etc. . Add support for initctl log , shows last 10 lines from syslog. . Add initctl cond dump for deging conditions. . Ensure plugins always have a default name, file name. . Reorganization, move all source files to a src/ sub-directory. . Add support for initctl , much needed by distributions. See doc/distro.md for details. . Remove UNUSED() macro, mentioned here because it may have been used by external plugin developers. Set -Wno-unused-parameter instead. . New table headings in initctl, using top style inverted text. . Allow initctl show to use full screen width for service descriptions. . New HOOK_BANNER for plugins to override the default banner(). . Allow loading TTYs from /etc/finit.d. . Improvements to built-in getty, ignore signals like SIGINT, SIGHUP, support Ctrl-U to erase to beginning of line. . Add TTY nowait and noclear options. . Allow using both built-in getty and external getty: tty 12345 /dev/ttyAMA0 115200 noclear vt220 tty 12345 /sbin/getty -L 115200 /dev/ttyAMA0 vt100 tty 12345 /sbin/agetty -L ttyAMA0 115200 vt100 nowait. . Silent boot is now the default, use --enable-progress to get the old. Finit style process progress. I.e., --enable-silent is no more . Support for configure --enable-emergency-shell, de-only mode. . Support for a fallback shell on console if none of the configured TTYs can be started, configure --enable-fallback-shell. . All demessages to console when Finit --deis enabled. . Prevent login, by touching /etc/nologin, during runlevel changes. . A more orderly shutdown. On reboot/halt/poweroff Finit now properly goes to runlev
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.