Skip to content

Finit v3.2-rc2

Pre-release
Pre-release

Choose a tag to compare

@troglobit troglobit released this 11 Apr 22:40
· 2092 commits to master since this 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