Skip to content

Releases: troglobit/finit

Finit v4.0-rc1

28 Feb 22:31
Compare
Choose a tag to compare
Finit v4.0-rc1 Pre-release
Pre-release

This is a pre-release, for internal testing at Westermo at the moment. Version 4.0 replaces the previously planned 3.2 because of major changes, for instance; removal of the built-in inetd, incompatible changes to kernel command options and configure script. See the changelog for more detailed information. A fully up-to-date list of changes is expected for the GA release.

Finit v3.2-rc3

23 Apr 16:10
Compare
Choose a tag to compare
Finit v3.2-rc3 Pre-release
Pre-release

Fixes to condition handling and changes to condition names when :ID is set.

See 9d9b6b5 for a summary.

Finit v3.2-rc2

11 Apr 22:40
Compare
Choose a tag to compare
Finit v3.2-rc2 Pre-release
Pre-release

Bug fix release, but also cgroups and a new progress!

https://twitter.com/b0rk/status/1214341831049252870?s=20

Changes

  • Introducing Finit progress 𝓜𝓸𝓭𝓮𝓻𝓷
  • Support for sysv start/stop scripts as well as monitoring forking services, stared using sysv or service stanza
  • Support for custom kill:DELAY, default 3 sec.
  • Support for custom halt:SIGNAL, default SIGTERM
  • Support for tracking custom PID files, using pid:!/path/to/foo.pid, useful with new sysv or service which fork to background
  • Support starting run/task/services without absolute path, trust $PATH
  • Add support for --disable-docs and --disable-contrib to speed up builds and work around issue with massively parallel builds
  • Add support for @console also for external getty
  • Add -b, batch mode, for non-interactive use to initctl
  • Prefer udev to handle /dev/ if mdev is also available
  • Redirect dbus daemon output to syslog
  • Set $SHELL, like $PATH, to a sane default value, needed by BusyBox
  • Finit no longer automatically reloads its *.conf files after running /etc/rc.local or run-parts. Use initctl reload instead.
  • initctl without an argument or option now defaults to list services
  • Convert built-in watchdog daemon to standalone mini watchdogd, issue #102
  • Improved watchdog hand-over, now based on svc_t and not PID
  • Extended bootstrap, runlevel S, timeout: 10 --> 120 sec. before services not allowed in the runtime runlevel are unconditionally stopped
  • Removed HOOK_SVC_START and HOOK_SVC_LOST, caused more problems than they were worth. Users are encouraged to use accounting instead
  • Skip displaying "Restarting ..." progress for bootstrap processes
  • Added a simple work queue mechanism to queue up work at boot + runtime
    • Postpone deletion of svc_t until any SIGKILL timer has elapsed
    • As long as a stepped service changes state we queue another step all event, because services may depend on each other
  • Require new libuEv API: uev_init1() to reduce event cache so that the kernel can invalidate deleted events before enqueing to userspace
  • Rename hwclock.so plugin to rtc.so since it now is stand-alone from the hwclock tool. Note: the kernel can also be set to load and store RTC to/from system clock at boot/halt as well, issue #110
  • New plugin to support cold plugging devices, auto-loading of modules at boot. Detects required modules by reading /sys/devices/*
  • New plugin for /etc/modules-load.d/ by Robert Andersson, Atlas Copco
  • New name:foo support for services, by Robert Andersson, Atlas Copco
  • New manual:yes support for services, by Robert Andersson, Atlas Copco
  • New log:console support for services, by Robert Andersson, Atlas Copco
  • Support for :ID as a string, by Jonas Johansson, Westermo
  • Support for auto-reload, instead of having to do initctl reload, when a service configuration has changed. Disabled by default, but can be enabled with ./configure --enable-auto-reload
  • Support for logging security related events, e.g., runlevel change, start/stop or failure to start services, by Jonas Holmberg, Westermo

Fixes

  • Fix #96: Start udevd as a proper service
  • Ensure we track run commands as well as task/service, once per runlevel
  • Fix #98: FTBFS with --disable-inetd
  • Make sure to unblock UDP inetd services when connection terminates. Regression introduced in v3.1
  • Ensure run/tasks also go to stopping state on exit, like services, otherwise it is unnecessarily hard to restart them
  • Fix #99: Do not try to SIGKILL inetd services, they are not backed by a PID. This caused a use after free issue crashing finit. Found and fixed by Tobias Waldekranz, Westermo
  • Fix missing OS/Finit title bug, adds leading newline before banner
  • Remove "Failed connecting to watchdog ..." error message on systems that do not have a watchdog
  • Fix #100: Early condition handling may not work if /var/run does not yet exist (symlink to /run). Added compat layer for access
  • Fix #103: Register multiple getty if @console resolves to >1 TTY,
  • Fix #105: Only remove /etc/nologin when moving from runlevel 0, 1, 6
  • Fix #106: Don't mark inetd connections for deletion at .conf reload. Fixed by Jonas Johansson, Westermo
  • Fix #107: Stop spawned inetd conncections when stopping inetd service. Fixed by Jonas Johansson, Westermo
  • Fix #109: Support for PID files in sub-directories to /var/run
  • Handle rename of PID files, by Robert Andersson, Atlas Copco
  • Fix #111: Only restart inetd services when necessary. E.g., if the listening interface is changed. Only stop established connections which are no longer allowed, i.e. do not touch already allowed established connections. Fixed by Jonas Johansson, Westermo
  • Fix #120: Redirect stdin to /dev/null for services by default
  • Fix #122: Switch to nanosleep() to achieve "signal safe" sleep, fixed by Jacques de Laval, Westermo
  • Fix #124: Lingering processes in process group when session leader exits. E.g., lingering logit processes when parent dies
  • Fix: update inetd service args on config change. Found and fixed by Petrus Hellgren, Westermo
  • Fix service name matching, e.g. for condition handling, may match with wrong service, by Jonas Holmberg, Westermo
  • Run all run-parts scripts using /bin/sh -c foo just like the standard run-parts tool. Found by Magnus Malm, Westermo
  • Fix initctl [start | restart], should behave the same for services that have crashed. Found by Mattias Walström, Westermo
  • Wait for bootstrap phase to complete before cleaning out any bootstrap processes that have stopped, they may be restarted again
  • Reassert condition when an unmodified run/task/service goes from WAITING back to RUNNING again after a reconfiguration event. Found and fixed by Jonas Johansson, Westermo
  • Restore Ctrl-D and Ctrl-U support in built-in getty
  • Remove service condition when service is deleted
  • Fix C++ compilation issues, by Robert Andersson, Atlas Copco

Finit v3.2-rc1

16 Oct 07:08
Compare
Choose a tag to compare
Finit v3.2-rc1 Pre-release
Pre-release

Bug fix release.

Changes

  • Add support for --disable-docs and --disable-contrib to speed up builds and work around issue with massively parallel builds
  • Add -b, batch mode, for non-interactive use to initctl
  • Prefer udev to handle /dev/ if mdev is also available
  • Redirect dbus daemon output to syslog
  • Set $SHELL, like $PATH, to a sane default value, needed by BusyBox
  • Finit no longer automatically reloads its *.conf files after running /etc/rc.local or run-parts. Use initctl reload instead.
  • initctl without an argument or option now defaults to list services
  • Converted built-in watchdog daemon to standalone mini watchdogd
  • Improved watchdog hand-over, now based on svc_t and not PID
  • Extended bootstrap, runlevel S, timeout: 10 --> 120 sec. before services not allowed in the runtime runlevel are unconditionally stopped
  • Removed HOOK_SVC_START and HOOK_SVC_LOST, caused more problems than they were worth. Users are encouraged to use accounting instead
  • Skip displaying "Restarting ..." progress for bootstrap processes
  • Added a simple work queue mechanism to queue up work at boot + runtime
    • Postpone deletion of svc_t until any SIGKILL timer has elapsed
    • As long as a stepped service changes state we queue another step all event, because services may depend on each other
  • Require new libuEv API: uev_init1() to reduce event cache so that the kernel can invalidate deleted events before enqueing to userspace

Fixes

  • Fix #96: Start udevd as a proper service
  • Ensure we track run commands as well as task/service, once per runlevel
  • Fix #98: FTBFS with --disable-inetd
  • Make sure to unblock UDP inetd services when connection terminates. Regression introduced in v3.1
  • Ensure run/tasks also go to stopping state on exit, like services, otherwise it is unnecessarily hard to restart them
  • Fix #99: Do not try to SIGKILL inetd services, they are not backed by a PID. This caused a use after free issue crashing finit. Found and fixed by Tobias Waldekranz, @wkz, Westermo
  • Fix missing OS/Finit title bug, adds leading newline before banner
  • Remove "Failed connecting to watchdog ..." error message on systems that do not have a watchdog
  • Fix #100: Early condition handling may not work if /var/run does not yet exist (symlink to /run). Added compat layer for access
  • Fix #103: Register multiple getty if @console resolves to >1 TTY
  • Fix #105: Only remove /etc/nologin when moving from runlevel 0, 1, 6
  • Fix #106: Don't mark inetd connections for deletion at .conf reload. Fixed by Jonas Johansson, @jonasj76, Westermo
  • Fix #107: Stop spawned inetd conncections when stopping inetd service. Fixed by Jonas Johansson, @jonasj76, Westermo
  • Fix #111: Only restart inetd services when necessary. E.g., if the listening interface is changed. Only stop established connections which are no longer allowed, i.e. do not touch already allowed established connections. Fixed by Jonas Johansson, @jonasj76, Westermo
  • Fix: update inetd service args on config change. Found and fixed by Petrus Hellgren, @ptruz, Westermo
  • Fix initctl [start | restart], should behave the same for services that have crashed. Found by Mattias Walström, @mattiaswal, Westermo
  • Wait for bootstrap phase to complete before cleaning out any bootstrap processes that have stopped, they may be restarted again
  • Reassert condition when an unmodified run/task/service goes from WAITING back to RUNNING again after a reconfiguration event. Found and fixed by Jonas Johansson, @jonasj76, Westermo
  • Remove service condition when service is deleted

Finit v3.1

23 Jan 13:55
Compare
Choose a tag to compare

Improvements to netlink.so plugin, per-service rlimit support, improved integration with watchdogd, auto-detect TTY console. Much improved debug, rescue and logging support. Also, many fixes to both big and small issues, most notably in the condition handling, which no longer is sensitive to time skips.

This version requires at least libuEv v2.1.0 and libite v2.0.1

Changes

  • Support for more kernel command line settings:
    • splash, enable boot progress
    • debug, like --debug but also enable kernel debug
    • 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 <JOB|NAME> command
  • Support for rlimit per service/run/task/inetd/tty, issue #45
  • 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, issue #18
  • 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 issue 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 <CONF> to be used with reload
  • initctl: Improved output of initctl show <SVC>
  • Support reloading /etc/finit.conf. The main finit.conf file previously did not support reloading at runtime, as of v3.1 all configuration directives supported in /etc/finit.d/*.conf are now supported in /etc/finit.conf
  • Change .conf dependency + reload handling. Finit no longer relies on mtime of .conf files, instead an inotify handler tracks file changes for time insensitive dependency tracking
  • Change condition handling to not rely on mtime but a generation id.
  • 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. Issue #95
  • Greatly improved log sub-option to service/run/tasks, selectively redirect stdout and stderr using the new tool logit to either syslog or a logfile. Issue #44
  • Support for automatic log rotation of logfiles created by log option. Use configure --disable-logrotate on systems with a dedicated log rotation service. Issue #44
  • Support for disabling service/run/task progress with empty -- description. Note: no description separator gives a default desc.
  • Create /etc/mtab symlink if missing on system (bootmisc plugin)
  • New hook: hook/mount/post runs after mount -a but before the hook/mount/all, where bootmisc.so runs. This provides the possibility of running a second stage mount command before files in /run and similar are created
  • Skip gdbserver when unleashing the grim reaper at shutdown
  • Distribute and install docs/ and contrib/ directories

Fixes

  • Reset TTY before restarting it. A program may manipulate the TTY in various ways before the user logs out, Finit needs to reset the TTY to a sane state before restarting it. Issue #84
  • On .conf parse errors, do not default to set TTY speed 38400, reuse current TTY speed instead
  • Fix run/tasks, must be guaranteed to run once per declared runlevel. All run/tasks on [S] with a condition <...> failed to run. Finit now tracks run/tasks more carefully, waiting for them to finish before switching to the configured runlevel at boot. Issue #86
  • Allow inetd services to be registered with a unique ID, e.g. :161, issue #87. Found by Westermo
  • inetd: drop UDP packets from blocked interfaces, issue #88
  • Handle obscure inter-plugin dependency issue by calling the netlink plugin before the pidfile plugin on HOOK_SVC_RECONF events
  • Handle event loop failure modes, issue found by Westermo
  • Handle API socket errors more gracefully, restart socket
  • Do not attempt to load kernel modules more than once at bootstrap
  • Remove reboot symlinks properly on uninstall
  • Fix regression in condition handling, reconf condition must be kept as a reference point to previous reconfiguration, or bootstrap.
  • Fix nasty race condition with internal service stop, abort kill if the service has already terminated, otherwise we may do kill(0, SIGKILL)
  • Fix reconfiguration issue with (very quick) systems that don't have highres timers
  • Fix formatting of runlevel string in initctl show
  • Allow running initctl with STDOUT redirected
  • Fix regression in initctl start/stop <ID>, using name worked not id
  • Fix error handling in initctl start/stop without any argument
  • Fix issue #81 properly, remove use of SYSV shm IPC completely. Finit now use the API socket for all communication between PID 1 and initctl
  • Fix segfault on x86_64 when started with kernel cmdline --debug
  • Normalize condition paths on systems with /run instead of /var/run

Finit v3.1-rc2

15 Jan 11:46
Compare
Choose a tag to compare

Changes

  • Support for more kernel command line settings:
    • splash, enable boot progress
    • debug, like --debug but also enable kernel debug
    • 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 <JOB|NAME> command
  • Support for setting hard and soft rlimit for a resource at once
  • Support for the special debug option 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. Issue #95
  • 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. Issue #44

Fixes

  • Do not attempt to load kernel modules more than once at bootstrap
  • Remove reboot symlinks properly on uninstall

finit-3.1-rc2.tar.xz    	Distribution tarball
finit-3.1-rc2.tar.xz.md5	595f2eea6bfe11c0c61a2c18c0141b3f

Finit v3.1-rc1

23 Dec 10:56
Compare
Choose a tag to compare
Finit v3.1-rc1 Pre-release
Pre-release

Finit v3.1 require libuEv v2.1.0, or later, and libite v2.0.1, or later.

Changes

  • Support for rlimit per service/run/task/inetd/tty, issue #45
  • 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.
  • Support for calling run/tasks on Finit internal HOOK points, issue #18
  • 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 issue 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
  • 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 <CONF> to be used with reload
  • initctl: Improved output of initctl show <SVC>
  • Support reloading /etc/finit.conf. The main finit.conf file previously did not support reloading at runtime, as of v3.1 all configuration directives supported in /etc/finit.d/*.conf are now supported in /etc/finit.conf
  • Change .conf dependency + reload handling. Finit no longer relies on mtime of .conf files, instead an inotify handler tracks file changes for time insensitive dependency tracking
  • Change condition handling to not rely on mtime but a generation id.

Fixes

  • Reset TTY before restarting it. A program may manipulate the TTY in various ways before the user logs out, Finit needs to reset the TTY to a sane state before restarting it. Issue #84
  • On .conf parse errors, do not default to set TTY speed 38400, reuse current TTY speed instead
  • Fix run/tasks, must be guaranteed to run once per declared runlevel. All run/tasks on [S] with a condition <...> failed to run. Finit now tracks run/tasks more carefully, waiting for them to finish before
    switching to the configured runlevel at boot. Issue #86
  • Allow inetd services to be registered with a unique ID, e.g. :161, issue #87. Found by Westermo
  • inetd: drop UDP packets from blocked interfaces, issue #88
  • Handle obscure inter-plugin dependency issue by calling the netlink plugin before the pidfile plugin on HOOK_SVC_RECONF events
  • Handle event loop failure modes, issue found by Westermo
  • Handle API socket errors more gracefully, restart socket
  • Fix regression in condition handling, reconf condition must be kept as a reference point to previous reconfiguration, or bootstrap.
  • Fix nasty race condition with internal service stop, abort kill if the service has already terminated, otherwise we may do kill(0, SIGKILL)
  • Fix reconfiguration issue with (very quick) systems that don't have highres timers
  • Fix formatting of runlevel string in initctl show
  • Allow running initctl with STDOUT redirected
  • Fix regression in initctl start/stop <ID>, using name worked not id
  • Fix error handling in initctl start/stop without any argument
  • Fix issue #81 properly, remove use of SYSV shm IPC completely. Finit now use the API socket for all communication between PID 1 and initctl
  • Fix segfault on x86_64 when started with kernel cmdline --debug

Finit v3.0

19 Oct 08:08
Compare
Choose a tag to compare

Major release, support for conditions/dependencies between services, optional built-in watchdog daemon, optional built-in getty, optional built-in standard inetd services like echo server, rdate, etc.

Also, native support for Debian/BusyBox /etc/network/interfaces, overhauled new configure based build system, logging to /dev/kmsg before syslogd has started, massively improved support for Linux distributions.

Changes

  • 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 <SVC>, shows last 10 lines from syslog

  • Add initctl cond dump for debugging conditions

  • Ensure plugins always have a default name, file name

  • Reorganization, move all source files to a src/ sub-directory

  • Add support for initctl <list|enable|disable> <SVC>, 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, debug-only mode

  • Support for a fallback shell on console if none of the configured TTYs can be started, configure --enable-fallback-shell

  • All debug messages to console when Finit --debug is enabled

  • Prevent login, by touching /etc/nologin, during runlevel changes

  • A more orderly shutdown. On reboot/halt/poweroff Finit now properly goes to runlevel 0/6 to first stop all processes.

  • Perform sync before remounting as read-only, at shutdown

  • Clean up /tmp, /var/run, and /var/lock at boot on systems which have these directories on persistent storage

  • Call udev triggers at boot, on systems with udev

  • Add missing /var/lock/subsys directory for dbus

  • Add support for poweroff

  • Add support for a built-in miniature watchdog daemon

  • Remove GLIBC:isms like __progname

  • Manage service states based on user defined conditions

  • Manage dependencies between services, w/ conditions (pidfile plugin)

  • Manage service dependencies on network events (netlink plugin)

  • Support for dynamically reloading Finit configuration at runtime

  • Refactor to use GNU configure and build system

  • New hooks for for detecting lost and started services (lost plugin)

  • External libraries, libuEv and libite, now build requirements

  • Early logging support to /dev/kmsg instead of console

  • Support for redirecting stdout/stderr of services to syslog

  • Support for managing resource limits for Finit and its processes

  • Add optional built-in inetd services: echo server, chargen, etc.

  • Add simple built-in getty

  • Greatly improved accounting support, both UTMP and WTMP fixes+features

  • Improved udev support, on non-embedded systems

  • Improved shutdown and file-system unmount support (Debian)

  • Support SysV init /etc/rc.local

  • Inetd protection against UDP looping attacks

  • Support systems with /run instead of /var/run (bootmisc plugin)

  • Adopted BusyBox init signals for halt/reboot/poweroff

  • SysV init compat support for reboot (setenv)

  • Compat support for musl libc

  • Add OpenRC-like support for sysctl.d/*.conf

  • Add support for Debian/BusyBox /etc/network/interfaces

  • Add support for running fsck on file systems in /etc/fstab

  • Added example configs + HowTos for Debian and Alpine Linux
    to support latest releases of both distributions

  • Lots of documentation updates

Fixes

  • Fix race-condition at configuration reload due to too low resolution. Thanks to Mattias Walström, Westermo
  • Fix to handle long process (PID) dependency chains, re-run reconf callback until no more applications are in flux. Thanks to Mattias Walström, Westermo
  • Clear reconf condition when initctl reload has finished
  • Skip automatic reload of /etc/finit.d/*.conf files when changing runlevel to halt or reboot
  • Fix issue #54: Allow halt and poweroff commands even if watchdog is enabled
  • Fix issue #56: Check existence of device before trying to start getty
  • Fix issue #60: initctl should display error and return error code for non-existing services should the operator try to start/stop them.
  • Fix issue #61: Reassert net/* conditions after initctl reload
  • Fix issue #64: Skip fsck on already mounted devices
  • Fix issue #66: Log rotate and gzip /var/log/wtmp, created by Finit
  • Fix issue #72: Check ifup exists before trying to bring up networking, also set $PATH earlier to simplify run() et al -- no longer any need to use absolute paths for system tools called from Finit. Thanks to crazy
  • Fix issue #73: Remove double ntohl() in inetd handling, prevents matches. Thanks to Petrus Hellgren, Westermo
  • Fix issue #76: Reap zombie processes in emergency shell mode
  • Fix issue #80: FTBFS on Arch Linux, missing stdarg.h in helpers.h, thanks to Jörg Krause
  • Fix issue #81: Workaround for systems w/o SYSV shm IPC support in kernel
  • Always collect bootstrap-only tasks when done, we will never re-run them. Also, make sure to never reload bootstrap-only tasks at runtime
  • Remove two second block (!) of Finit when stopping TTYs

Finit v3.0-rc2

09 Dec 00:07
Compare
Choose a tag to compare
Finit v3.0-rc2 Pre-release
Pre-release

Second pre-release,

  • Support for a fallback shell on console if none of the configured TTYs
    can be started
  • All debug messages to console when Finit --debug is enabled
  • Prevent login, by touching /etc/nologin, during runlevel changes
  • A more orderly shutdown. On reboot/halt/poweroff Finit now properly
    goes to runlevel 0/6 to first stop all processes.
  • Perform sync before remounting as read-only, at shutdown
  • Clean up /tmp, /var/run, and /var/lock at boot on systems which
    have these directories on persistent storage
  • Call udev triggers at boot, on systems with udev
  • Add missing /var/lock/subsys directory for dbus
  • Add support for poweroff
  • Add support for a built-in miniature watchdog daemon
  • Remove GLIBC:isms like __progname

Finit v3.0-rc1

13 Sep 22:06
Compare
Choose a tag to compare
Finit v3.0-rc1 Pre-release
Pre-release
  • Manage service states based on user defined conditions
  • Manage dependencies between services, w/ conditions (pidfile plugin)
  • Manage service dependencies on network events (netlink plugin)
  • Support for dynamically reloading Finit configuration at runtime
  • Refactor to use GNU configure and build system
  • New hooks for for detecting lost and started services (lost plugin)
  • External libraries, libuEv and libite, now build requirements
  • Early logging support to /dev/kmsg instead of console
  • Support for redirecting stdout/stderr of services to syslog
  • Support for managing resource limits for Finit and its processes
  • Add optional built-in inetd services: echo server, chargen, etc.
  • Add simple built-in getty
  • Greatly improved accounting support, both UTMP and WTMP fixes+features
  • Improved udev support, on non-embedded systems
  • Improvide shutdown and file-system unmount support (Debian)
  • Added --enable-emergency-shell (configure) fallback debug mode
  • Support SysV init /etc/rc.local
  • Inetd protection against UDP looping attacks
  • Support systems with /run instead of /var/run (bootmisc plugin)
  • Adopted BusyBox init signals for halt/reboot/poweroff
  • SysV init compat support for reboot (setenv)
  • Compat support for musl libc
  • Add OpenRC-like support for sysctl.d/*.conf
  • Add support for Debian/BusyBox /etc/network/interfaces
  • Add support for running fsck on file systems in /etc/fstab
  • Added example configs + HowTos for Debian (Jessie) and Alpine Linux